2 qq 23408351 qq_23408351 于 2015.06.02 16:35 提问

mysql不重复插入所有字段值都一样的记录

怎么实现mysql避免插入重复所有字段值都一样的记录,不是根据某个主键的值来判断是否插入,只有在所有字段值都一样(已经存在)的时候才无法添加该记录。。

3个回答

edouardzyc
edouardzyc   2015.06.02 16:40

写个beforeinsert的触发器? 或者在insert之前select一下?

youransleep
youransleep   2015.06.02 16:53

这个,怎么说呢,在我的印象中,只要主键一样,这行记录就无法插入了吧。既然部分相同都无法插入,那么所有字段相同的情况是肯定如法添加数据的。
还是你的意思是说,这些数据比较特殊,只要有一点字段是不同的,这个数据就应该被判断为可以插入?如果是这种情况更好办了,将所有字段联合设为主键就可以了。

qq_23408351
qq_23408351 所有字段设为联合主键,可以实现捏。。谢谢
2 年多之前 回复
qq_23408351
qq_23408351 嗯,我的意思是只要有一点字段是不同的,这个数据就应该被判断为可以插入。。我临时用的解决办法是,创建1个临时表存放没有重复的记录,然后在删除原来表中重复的记录(不存在新建的那个临时表中的记录),最后在删除这个临时表。。试了下,还可以。。。你给的建议,待会试试。。十分感谢捏
2 年多之前 回复
caozhy
caozhy   Ds   Rxr 2015.06.02 18:29

alter table 表名 add constraint 约束名 UNIQUE(字段一,字段二,字段三...);

Csdn user default icon
上传中...
上传图片
插入图片