避免插入重复记录应该有很多方法,我感觉可以分为两类,一类是在表结构上添加某些限制,一类是在插入语句上使用特殊的语法,比如我之前使用的insert ignore,但是这个是针对已经定义了主键的表而言的,对于没有定义主键的表没有效果。今天就遇到了这种情况。虽然使用了ignore,但是表中还是有重复的记录。所以我修改了表结构,加入了一个unique key 限制。
假设表结构有如下字段:id,name,time,phase,为name和phase两个字段添加唯一性约束(unique constraint)
crate table mytable(
……
unique key `name_phase` (`name`, `phase`)
);
参考:http://stackoverflow.com/questions/635937/how-do-i-specify-unique-constraint-for-multiple-columns-in-mysql
没有评论:
发表评论