开发者社区> 问答> 正文

如何使用REPLACE数据操作语言


REPLACE的运行与INSERT相似,只有一点除外,如果表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录将被删除。
为了能够使用REPLACE,必须同时拥有表的INSERT和DELETE权限。
格式 REPLACE [INTO] tblname
    [(colname,...)]
    {VALUES|VALUE} ({expr | DEFAULT},...);


  • [(colname,...)]用于指定插入数据的列。

  • 同时替换多列时,用“,”隔开。

关于REPLACE语句执行,affect row的值计算:

  • 如果是当新行插入的话,affected_row=1;

  • 如果replace前后新值和旧值不一致的话,affectd_row=2,(这里假定产生冲突的行为1行,如果为多行的话,那么affectd_row = 冲突行数+1)

  • 如果replace前后新值和旧值一致的话,分两种情况:如果产生冲突的是表上最后一个唯一索引&&没有外键约束&&没有ON DELETE TRIGGER,affected_row=1;
  • 其他情况,affectd_row = 2。

展开
收起
云栖大讲堂 2017-11-01 15:51:35 1770 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript 语言在引擎级别的执行过程 立即下载
Cassandra CQL语法以及功能介绍 立即下载
JS 语言在引擎级别的执行过程 立即下载

相关实验场景

更多