Creating constraints¶
可以使用 CREATE TABLE 在创建表时创建约束,也可以稍后使用 ALTER TABLE 将约束添加到表中:
单列约束可以作为列定义的一部分以内联方式创建。
Multi-column constraints must be created with a separate out-of-line clause that specifies the columns in the constraint.
若要创建约束,必须对用于创建约束的角色授予某些访问控制权限。有关更多信息,请参阅 访问控制要求。
Creating constraints inline¶
以下内联语法只能用于单列约束:
有关 inline_constraint 语法的详细信息,请参阅 CREATE | ALTER TABLE ... CONSTRAINT。
Creating constraints out-of-line¶
以下行外语法必须用于多列约束,但也可用于单列约束:
有关 outofline_constraint 语法的详细信息,请参阅 CREATE | ALTER TABLE ... CONSTRAINT。
CREATETABLE...LIKE 和 CLONE 中的限制¶
Snowflake 支持使用 CREATE TABLE 创建表的副本:
要创建空副本,请使用 CREATE TABLE ...LIKE。
要创建克隆,请使用 CREATE TABLE ...CLONE。
此外,克隆架构或数据库时会自动创建表的副本。
无论以何种方式为表创建副本,都会复制原始表上的约束。使用引用表(外键表)和被引用表(主键表)复制外键时,可能会出现以下情况:
如果在同一命令中复制两个表(例如在克隆架构或数据库期间),则会在新的引用表和被引用表之间创建一个新的外键。
如果仅复制引用表,则会在引用表上创建一个新的外键,该外键指向作为引用表的原始主键表。
If only the referenced table is copied, no new foreign keys are created, although the primary or unique keys are copied.
因此,如果您分别复制引用表和被引用表,则必须手动创建新的外键,或手动更改新外键的主键表。