Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ALTER TABLE ... CONSTRAINT

可使用以下语法添加、修改或删除约束:

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

Navigation