我有一个数据库,我需要避免插入重复项。要求是:
对于匹配第1列的行子集,不能有任何具有相同列2的行。
对于匹配第1列的行子集,不能有任何具有相同列3和4的行。
我是SQL的新手,所以有没有办法在创建数据库(创建表)时设置这些关系,还是我必须在插入表之前手动执行选择并进行这些检查?
答案 0 :(得分:4)
实际上,您需要第1列和第2列是唯一的,并且列1,3和4也必须是唯一的。因此,在创建表时,可以使用两个UNIQUE constaints:
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)
)
答案 1 :(得分:0)
只是为了让球滚动......
您可以在插入后立即返回,并根据您提到的限制删除重复的行吗?