是否可以重命名列?

Is it possible to rename columns?

是否可以发布类似

的问题
RENAME COLUMN col1 col2

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

不,这是不可能的。目前,您只能对 table 中的列进行以下更改:

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

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

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

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