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

Sql 如何防止插入基于两个外键的重复行?,sql,sql-server,foreign-keys,duplicates,Sql,Sql Server,Foreign Keys,Duplicates,如果手动插入数百行,如何有效地编写insert语句,使每个insert语句不会仅在两个外键已同时出现在该数据库的记录中时运行 在列上创建一个约束,这是一个很好的参考起点 下面是一个外键约束的示例,要在多个列上定义外键约束,请使用以下SQL语法: MySQL / SQL Server / Oracle / MS Access: CREATE TABLE Orders ( O_Id int NOT NULL, OrderNo int NOT NULL, P_Id int, PRIMARY KEY (

如果手动插入数百行,如何有效地编写insert语句,使每个insert语句不会仅在两个外键已同时出现在该数据库的记录中时运行

在列上创建一个
约束
,这是一个很好的参考起点

下面是一个
外键
约束的示例,要在多个列上定义
外键
约束,请使用以下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)
)

您可以按@BrianAtkins所述添加唯一约束,也可以使用合并语句而不是INSERT,以避免因违反唯一约束而中断整个INSERT。

在这两列上创建唯一约束。@SeanLange,为什么不将其作为答案发布呢。