2

是否可以发出类似的东西

RENAME COLUMN col1 col2

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

4

1 回答 1

5

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

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

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

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

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

于 2017-02-28T15:30:11.527 回答