可使用以下语法添加、修改或删除约束:
ALTER TABLE [db].name [ON CLUSTER cluster] ADD CONSTRAINT [IF NOT EXISTS] constraint_name {CHECK|ASSUME} expression;
ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY CONSTRAINT [IF EXISTS] constraint_name {CHECK|ASSUME} expression;
ALTER TABLE [db].name [ON CLUSTER cluster] DROP CONSTRAINT [IF EXISTS] constraint_name;与创建表类似,约束既可以声明为 CHECK (在 INSERT 时强制检查) ,也可以声明为 ASSUME (由优化器信任而不做检查) 。两者的区别,参见约束。
MODIFY CONSTRAINT 会替换现有约束的声明,同时保留其在表定义中的位置。它还可以更改约束类型 (例如,从 CHECK 改为 ASSUME) 。这相当于删除该约束,再用新的声明重新添加。如果约束不存在,则查询会抛出错误,除非指定了 IF EXISTS。
更多信息,参见约束。
这些查询会添加、更改或删除表中与约束相关的元数据,因此会立即生效。
复制表上的所有更改都会广播到 ZooKeeper,并应用到其他副本上。
属于: ALTER
相关: ALTER, CREATE TABLE