是这样的,我有一个表“table”,里面有三个字段,分别是“aa,bb,cc”,其中aa,bb,cc单独的时候可以重复,所以无法在这些字段里设置主键primary或者唯一索引unique,现在我想实现的功能是,如何判断当插入数据的时候,如果要插入的数据重复的时候,就不允许插入,如何实现呢?假设表table里已经有这些数据:
table
aa bb cc
11 22 33
11 33 22
33 44 22现在我想插入这三条数据:
aa bb cc
11 33 44 (因为没有与之前的所有内容重复,可插入)
22 33 33 (因为没有与之前的所有内容重复,可插入)
11 22 33 (因为与之前第一条全部相同,所以禁止插入)如何现实,万分感谢!
table
aa bb cc
11 22 33
11 33 22
33 44 22现在我想插入这三条数据:
aa bb cc
11 33 44 (因为没有与之前的所有内容重复,可插入)
22 33 33 (因为没有与之前的所有内容重复,可插入)
11 22 33 (因为与之前第一条全部相同,所以禁止插入)如何现实,万分感谢!
下面有触发器的写法,自己按照需求改一下
命名目标table为 test1;要导入的数据table为test2
sql如下:
INSERT INTO
test1
SELECT
t2.aa,
t2.bb,
t2.cc
FROM
(
SELECT test2.aa,test2.bb,test2.cc
FROM test2,test1
WHERE
test1.aa = test2.aa
and test1.bb = test2.bb
and test1.cc = test2.cc
) t1
RIGHT JOIN test2 t2 ON
t2.aa = t1.aa
and t2.bb = t1.bb
and t2.cc = t1.cc
WHERE t1.aa is NULL
alter table tbname add unique index(aa,bb,cc)
alter table tbname add unique index(aa,bb,cc)
ALTER TABLE table_name
ADD UNIQUE(aa, bb, cc)
ALTER TABLE 表名 ADD UNIQUE INDEX (aa, bb, cc)