来源:自学PHP网 时间:2015-04-16 10:51 作者: 阅读:次
[导读] REPLACE的运行与INSERT很相 20284;。只有一点例外,假如表中的一个旧记录与一个用于PRIMARYKEY或一个UNIQUE索引的新记录具有相同的 20540;,则在新记录被插入之前,旧记录被删除。 注意,除非...
REPLACE的运行与INSERT很相似。只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除。 语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行。
和INSERT一样。您不能从当前行中引用值,也不能在新行中使用值。如果您使用一个例如“ SET col_name = col_name + 1”的赋值,则对位于右侧的列名称的引用会被作为DEFAULT (col_name)处理。因此,该赋值相当于SET col_name = DEFAULT(col_name) + 1。 为了能够使用REPLACE,您必须同时拥有表的INSERT和DELETE权限。
。如果对于一个单行REPLACE该数为1,则一行被插入,同时没有行被删除。如果该数大于1 ,则在新行被插入前,有一个或多个旧行被删除。如果表包含多个唯一索引,并且新行复制 了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。
:检查该数是否为1(添加)或更大(替换)。 1. 尝试把新行插入到表中 2. 当因为对于主键或唯一关键字出现重复关键字错误而造成插入失败时: a. 从表中删除含有重复关键字值的冲突行 b. 再次尝试把新行插入到表中 REPLACE [LOW_PRIORITY | DELAYED] REPLACE [LOW_PRIORITY | DELAYED] REPLACE [LOW_PRIORITY | DELAYED] REPLACE INTO `table` (`unique_column`,`num`) VALUES ('$unique_value',$num);跟INSERT INTO `table` (`unique_column`,`num`) VALUES('$unique_value',$num) ON DUPLICATE UPDATE num=$num;还是有些区别的. 首先,因为新纪录与老记录的主键值不同,所以其他表中所有与本表老数据主键id建立的关联全部会被破坏。 其次,就是,频繁的REPLACE INTO 会造成新纪录的主键的值迅速增大。 来自:http://www.cnblogs.com/martin1009/archive/2012/10/08/2714858.html |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com