我有一张这样的表
id | name | zip
1 | abc | 1234
2 | xyz | 4321
3 | asd | 1234
我想插入记录,以便插入时id
和name
可能具有相同的值,但如果zip
的值对于该特定记录也相同,则不会插入。如果不是,则应插入。
例如:我可以插入另一行id=1
的值和name= abc
的值,但如果该记录也有zip=1234
则不应插入。
我怎样才能做到这一点。
答案 0 :(得分:1)
创建两个唯一索引:
create unique index idx_table_name_zip on table(name, zip)
create unique index idx_table_id_zip on table(id, zip)
然后,数据库将保证您要强制执行的唯一性。
答案 1 :(得分:1)
从 id,name和zip 组合
创建主键ALTER TABLE表ADD PRIMARY KEY(id,name,zip)
如果所有三列都相同,则行/记录被标记为重复,否则它是非常精细的非重复记录。
选中此项以获取更多here
答案 2 :(得分:0)
您需要在插入行之前进行检查,以便进行检查
EXCEPTION
WHEN OTHERS
THEN
SEND EMAIL
如果没有行返回,则可以执行插入...