INSERT查询唯一记录-Mysql

时间:2015-06-24 11:39:50

标签: mysql sql-insert

我有一张这样的表

id | name | zip 
1  | abc  | 1234
2  | xyz  | 4321 
3  | asd  | 1234

我想插入记录,以便插入时idname可能具有相同的值,但如果zip的值对于该特定记录也相同,则不会插入。如果不是,则应插入。

例如:我可以插入另一行id=1的值和name= abc的值,但如果该记录也有zip=1234则不应插入。

我怎样才能做到这一点。

3 个答案:

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

如果没有行返回,则可以执行插入...