sql唯一和设置插入约束

时间:2009-08-23 10:06:32

标签: sql database sqlite

我有一个数据库,我需要避免插入重复项。要求是:

对于匹配第1列的行子集,不能有任何具有相同列2的行。

对于匹配第1列的行子集,不能有任何具有相同列3和4的行。

我是SQL的新手,所以有没有办法在创建数据库(创建表)时设置这些关系,还是我必须在插入表之前手动执行选择并进行这些检查?

2 个答案:

答案 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)

只是为了让球滚动......

您可以在插入后立即返回,并根据您提到的限制删除重复的行吗?