【发布时间】:2017-07-06 04:06:31
【问题描述】:
如果使用可为空的列创建 Cloud Spanner 表,是否可以在不重新创建表的情况下对列添加 NOT NULL 约束?
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner
如果使用可为空的列创建 Cloud Spanner 表,是否可以在不重新创建表的情况下对列添加 NOT NULL 约束?
【问题讨论】:
标签: google-cloud-platform google-cloud-spanner
不幸的是,没有办法添加非空列
方法:
1 添加可空列
ALTER TABLE table1 ADD COLUMN column1 STRING(255)
UPDATE TABLE table1 SET column1 = "<GENERATED DATA>"
ALTER TABLE table1 ADD COLUMN column1 STRING(255) NOT NULL
谢谢。
【讨论】:
在现有表的 spanner 中创建可为空的列通常需要三个步骤...
# add new column to table
ALTER TABLE <table_name> ADD COLUMN <column_name> <value_type>;
# create default values
UPDATE <table_name> SET <column_name>=<default_value> WHERE TRUE;
# add constraint
ALTER TABLE <table_name> ALTER COLUMN <column_name> <value_type> NOT NULL;
【讨论】: