您好、欢迎来到现金彩票网!
当前位置:秒速快3 > 数据相关冲突 >

如何在MySQL的SQL语句中避免数据唯一性冲突

发布时间:2019-06-16 06:38 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部本文章来给大家提供三种在mysql中避免重复插入记录方法,主要是讲到了ignore,Replace,ON DUPLICATE KEY UPDATE三种方法,有需要的朋友可以参考一下

  如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用:

  REPLACE的运行与INSERT很相像,但是如果旧记录与新记录有相同的值,则在新记录被插入之前,旧记录被删除,即:

  表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。

  REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和

  受影响的行数可以容易地确定是否REPLACE只添加了一行,或者是否REPLACE也替换了其它行:检查该数是否为1(添加)或更大(替换)。

  例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:

  如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。

  如果a=1 OR b=2与多个行向匹配,则只有一个行被更新。通常,您应该尽量避免对带有多个唯一关键字的表使用ON DUPLICATE KEY子句。

  这个例子是我在实际项目中用到的:是将一个表的数据导入到另外一个表中,数据的重复性就得考虑(如下),唯一索引为:email:

  其它关键:DELAYED 做为快速插入,并不是很关心失效性,提高插入性能。

  特别说明:在MYSQL中UNIQUE索引将会对null字段失效,也就是说(a字段上建立唯一索引):

http://talkingwithjon.com/shujuxiangguanchongtu/337.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有