添加约束是DDL或DML
Posted
技术标签:
【中文标题】添加约束是DDL或DML【英文标题】:Adding constraints is DDL or DML 【发布时间】:2011-04-11 12:41:42 【问题描述】:在sql server中添加约束属于DML还是DDL的哪一类?
【问题讨论】:
请更全面地陈述您的问题。在正确的位置包含逗号将有助于理解它。 【参考方案1】:DDL,因为您定义表之间的关系,而不是修改存储在其中的数据。
【讨论】:
【参考方案2】:DDL,因为它们改变的是结构而不是数据。
例如:Referential integrity statements
【讨论】:
【参考方案3】:约束必须是DDL语句。让我们证明一下。 创建两个表A和B如下:
创建表 A(id int 主键);
创建表 B(id int,外键 id 引用 A(id));
现在,让我们尝试在 A 表中插入一些数据,然后在 B 表中插入一些数据。
插入 A 值 (1);
插入 B 值 (1);
现在,尝试运行 TRUNCATE A; 它会给出 Foreign Key Constraint Fail 错误。这意味着约束应用于表的schema,因此DDL 语句。
【讨论】:
以上是关于添加约束是DDL或DML的主要内容,如果未能解决你的问题,请参考以下文章