是否可以重命名列?

use*_*707 2 database database-schema google-cloud-platform google-cloud-spanner

是否可以发出类似的东西

RENAME COLUMN col1 col2
Run Code Online (Sandbox Code Playgroud)

在 Google Cloud Spanner 中?从 DDL 来看这是不可能的;如果不是,这是 Beta 版的设计选择还是限制?

Dan*_*ath 5

不,这是不可能的。目前,您只能对表中的列进行以下操作:

  • 添加一个新的
  • 删除现有列,除非它是键列
  • 更改删除行为(级联或非级联)
  • STRING在和之间转换BYTES
  • 改变STRING和的长度BYTES
  • 添加或删除NOT NULL修饰符

可以通过按顺序执行以下步骤来解决此问题:

  • 将新列添加到表中
  • 更新您的代码以从两列中读取
  • 更新您的代码以仅写入新代码
  • 运行 Cloud Dataflow 作业以将数据从旧列迁移到新列
  • 更新您的代码以仅从新列中读取
  • 删除旧列

请记住,上述步骤不适用于主键列,您必须创建一个新表,并以这种方式进行数据迁移。