我有一个数据库,我需要在其中避免插入重复项。要求是:
对于具有匹配列 1 的行的子集,不能有任何具有相同列 2 的行。
对于第 1 列匹配的行的子集,不能有任何具有相同列 3 和 4 的行。
我是 SQL 的新手,所以有没有一种方法可以在我创建数据库(创建表)时设置这些关系,或者我是否必须进行选择并在插入表之前手动进行这些检查?
最佳答案
实际上,您需要第 1 列和第 2 列是唯一的,并且第 1、3 和 4 列也是唯一的。所以当你创建表的时候,你可以使用两个 UNIQUE contains:
CREATE TABLE tbl (
col1 varchar(255),
col2 varchar(255),
col3 varchar(255),
col4 varchar(255),
CONSTRAINT uc_first UNIQUE(col1, col2),
CONSTRAINT uc_second UNIQUE(col1, col3, col4)
)
关于sql unique 和对插入设置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1318202/