更新是什么意思(详细解释替换)
admin
2023-08-25 03:42:32
0

概述

Mysql数据库replace和replaceinto都是经常使用的函数;Replace实际上做的是更新操作,而不是先删除再插入;事实上,replaceinto与insertinto非常相似,但是对于replaceinto,如果表中的旧记录与新记录的PRIMARYKEY或唯一索引的值相同,则在插入新记录之前,旧记录将被删除。

replace与replaceinto

replace是mysql中处理字符串的常用函数,可以替换字符串的内容。Trim截取操作也类似于字符串处理,前面已经介绍过了,这里就不多说了。

replaceinto的主要功能类似于insert操作。主要区别在于,replace会根据主键或唯一索引检查数据是否存在,如果存在,先删除再更新。

实例

1.创建表格

#表结构:使用btree创建表` t _ test `(` id ` int(11)unsigned notnullaut _ increment,` name` varchar (1) not null default ' '主键(` id `),唯一键` IDX _ name` (` name `))。

INSERTINTOt_test(`name `)值(' a ');#或replaceintot _ test (` name `)值(` a ');以上述方式插入两条记录会提示错误:1062-重复条目' a '伪造' idx _ name '时间:0.01000s .使用replaceinto会正常执行,但id会增加1。

ps:'s replace into中的into关键字可以省略。看起来一样,但是用法有点不一样。

replace(object,search,replace)

替换对象中的所有搜索。

selectreplace('www.baidu.com '' w '' n ')from dual;

例:用描述替换表中“名称”字段中的详细信息。

updatetablesetname=replace(name,' detail '' description')

replaceinto

相当于:ifnotexists(select1fromtwhereid=1)insertintot(id,update_time)values(1,getdate())elseupdatetsetupdate_time=getdate()whereid=1;.

替换运行与插入非常相似。如果表中的旧记录与用于PRIMARYKEY或唯一索引的新记录具有相同的值,则在插入新记录之前会删除旧记录。

请注意,除非表有主键或唯一索引,否则使用REPLACE语句是没有意义的。该语句与INSERT相同,因为没有使用索引来确定新行是否复制其他行。

所有列的值都取自REPLACEINTO语句中指定的值。所有缺少的列都被设置为默认值,就像INSERTINTO一样。不能引用当前行中的值或使用新行中的值。如果使用诸如& quotSETcol _ name=col _ name 1 & quot,对右边列名的引用将被视为DEFAULT(col_name)。因此,该赋值相当于SETcol_name=DEFAULT(col_name) 1。

若要使用REPLACEINTO,您必须对该表拥有INSERT和DELETE权限。

REPLACE语句返回一个数字,指示受影响的行数。这个数字是删除行和插入行的总和。如果单行替换的数字为1,则插入一行,不删除任何行。如果该数字大于1,则在插入新行之前会删除一个或多个旧行。如果表包含多个唯一索引,并且新行在不同的唯一索引中复制不同的旧行的值,则有可能一行替换多个旧行。

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

目前不能在一个子查询中,向一个表中更换,同时从同一个表中选择。

三种形式:

1.replaceintotbl _ name (col _ name,)值(.) 2.replaceintotbl _ name (col _ name,)选择.3.replacintotbl _ namesetcol _ name=value,

mysql中常用的三种插入数据的语句

插入。Replaceinto意味着插入替换数据。需求表中有主键或唯一索引。如果数据库中已经存在该数据,它将被新数据替换。如果没有数据效果,就和insertinto一样。Insertignore意味着如果相同的记录已经存在于中,当前的新数据将被忽略;后面会分享更多关于devops和DBA的内容,感兴趣的朋友可以关注一下~

相关内容

热门资讯

玩家必看“新皇豪互娱斗牛到底有... 您好:新皇豪互娱斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在新皇...
今日重大通报“美猴王斗牛有透视... 您好:美猴王斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在美猴王斗...
实测分享“阿拉游戏牛牛究竟有透... 您好:阿拉游戏牛牛这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在阿拉游...
科普实测“独角兽到底是不是有透... 您好:独角兽这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8700483】很多玩家在独角兽这款...
重大通报“微乐踢坑其实有辅助器... 您好:微乐踢坑这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在微乐踢坑这...