全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件

REPLACE

更新时间:2017-06-07 13:26:11

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。
本文导读目录