日期:2014-05-18  浏览次数:20477 次

SQL中能否用两个字段来唯一表示一条记录?
我是要实现"存在就更新,不存在就插入"的功能,但是对于存在的判定,是依据两个字段的,即当table1中的c1和c2均相同的记录,才认为是重复的。
如果是只要求一个字段的,那么把c1设定为主键,通过insert into table1(c1,c2) values('c1', 'c2') ON DUPLICATE KEY UPDATE c2='c2';就可以做到了。

但是很显然表中无法设定两个主键。

而且,如果用两条sql语句,即先select看看存不存在,然后再决定是insert还是update,则要当心并发问题了。可能甲select之后,乙insert,导致甲随后insert失败。

请问这个该怎么做好?

------解决方案--------------------
mySQL是否有唯一约束?我对mySQL不了解
不然就改主键好了