【发布时间】:2019-08-20 09:24:56
【问题描述】:
所以我正在创建一个数据库,其中我有一个包含多个列的父表,我希望在子表中引用多个列。我想在父表中的列和子表中的列之间创建关系。例如,我将其传递给 SQL 父表:
CREATE TABLE Parent (
val1 int NOT NULL,
val2 int NOT NULL,
val3 int NOT NULL,
val4 int NOT NULL,
PRIMARY KEY (val1)
);
子表:
CREATE TABLE Child (
val1 int NOT NULL,
val2 int,
val3 int,
val4 int,
PRIMARY KEY(val1)
);
关系
ALTER TABLE Parent ADD FOREIGN KEY (val1, Val2, Val3) REFERENCES Parent(val1, Val2, Val3).
根据我上面的例子,我想知道这种外键是否可以接受? 像这样创建外键会影响查询性能吗?
感谢您的知识分享。
提前致谢
【问题讨论】:
-
不会创建外键,因为外键只能引用主键中的列。而
val2和val3不是主键的一部分,因此它们不能是外键。 -
你的意思是写
alter table CHILD ..?
标签: sql sql-server-2012 sqlperformance