发布网友 发布时间:2022-04-09 14:41
共1个回答
热心网友 时间:2022-04-09 16:11
建立外键列的要求:
必须与主表的主键列数据类型一致
列不允许为空
外键表与主表必须在同一数据库
外键表有值时,主表无法删除被外键表引用的主键值所在行
外键表有值时,不可更新被外键表引用的主键值
下面是关于外键约束的资料
FOREIGN KEY 约束
如果在 FOREIGN KEY 约束的列中输入非 NULL 值,则此值必须在被引用的列中存在,否则将返回违反外键约束的错误信息。
FOREIGN KEY 约束应用于前面所讲的列,除非指定了源列。
FOREIGN KEY 约束仅能引用位于同一服务器上的同一数据库中的表。数据库间的引用完整性必须通过触发器实现。有关更多信息,请参见 CREATE TRIGGER。
FOREIGN KEY 可以引用同一表中的其它列(自引用)。
列级 FOREIGN KEY 约束的 REFERENCES 子句仅能列出一个引用列,且该列必须与定义约束的列具有相同的数据类型。
表级 FOREIGN KEY 约束的 REFERENCES 子句中引用列的数目必须与约束列列表中的列数相同。每个引用列的数据类型也必须与列表中相应列的数据类型相同。
如果 timestamp 类型的列是SQL Server 外键或被引用键的一部分,则不能指定 CASCADE。
可以在相互间具有引用关系的表上组合使用 CASCADE 和 NO ACTION。如果 SQL Server 遇到 NO ACTION,将终止执行语句并回滚相关的 CASCADE 操作。当 DELETE 语句导致 CASCADE 和 NO ACTION 组合操作时,在 SQL Server 检查 NO ACTION 操作之前将执行所有 CASCADE 操作。
一个表最多可包含 253 个 FOREIGN KEY 约束。
对于临时表不强制 FOREIGN KEY 约束。
每个表在其 FOREIGN KEY 约束中最多可以引用 253 个不同的表。
FOREIGN KEY 约束只能引用被引用表的 PRIMARY KEY 或 UNIQUE 约束中的列或被引用表上 UNIQUE INDEX 中的列。