如何防止基于两个外键插入重复行?

时间:2015-06-09 21:30:43

标签: sql sql-server foreign-keys duplicates

如果我手动插入数百行,我应该如何有效地编写insert语句,这样只有当两个外键已经存在于该数据库的记录中时,每个插入才会运行?

2 个答案:

答案 0 :(得分:0)

在列上创建constrainthere是一个很好的参考起点。

以下是FOREIGN KEY约束的示例,并且为了在多列上定义FOREIGN KEY约束,请使用以下SQL语法:

MySQL / SQL Server / Oracle / MS Access:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

答案 1 :(得分:0)

您可以添加@BrianAtkins所描述的唯一约束,也可以使用MERGE语句而不是INSERT,以避免在唯一约束违规时破坏整个插入。