是否可以重命名列?

时间:2017-02-28 10:54:17

标签: database google-cloud-platform database-schema google-cloud-spanner

是否可以发布类似

的内容
RENAME COLUMN col1 col2
Google Cloud Spanner中的

?从DDL看,这是不可能的;如果不是,这是Beta的设计选择还是限制?

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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