sql为detail表添加以“订单ID”为外键约束。
发布网友
发布时间:2022-05-05 06:07
我来回答
共1个回答
热心网友
时间:2023-10-12 06:26
订单ID 是 order 表的 主键
或者 有唯一索引的么?
如果不是的话, 那创建过程是要出错的, 例如:
-- 创建测试主表. 无主键.
CREATE TABLE test_main2 (
id INT NOT NULL,
value VARCHAR(10)
);
-- 创建测试子表.
CREATE TABLE test_sub2 (
id INT NOT NULL,
main_id INT,
value VARCHAR(10),
PRIMARY KEY(id)
);
1> ALTER TABLE test_sub2
2> ADD CONSTRAINT main_id_cons2
3> FOREIGN KEY (main_id)
4> REFERENCES test_main2(id);
5> go
消息 1776,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
在被引用表 'test_main2' 中没有与外键 'main_id_cons2' 中的引用列列表匹配的主键或
候选键。
消息 1750,级别 16,状态 1,服务器 HOME-BED592453C\SQLEXPRESS,第 1 行
无法创建约束。请参阅前面的错误消息。
默认情况下,无法创建外键
需要创建 unique 约束
1> ALTER TABLE test_main2
2> ADD UNIQUE (id);
3> go
unique 约束创建完毕后,外键创建成功。
1> ALTER TABLE test_sub2
2> ADD CONSTRAINT main_id_cons2
3> FOREIGN KEY (main_id)
4> REFERENCES test_main2(id);
5> go