阅读960 返回首页    go 阿里云 go 技术社区[云栖]


REPLACE__数据操作语言_SQL语法参考_云数据库 OceanBase-阿里云

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。

最后更新:2016-11-24 11:23:47

  上一篇:go UPDATE__数据操作语言_SQL语法参考_云数据库 OceanBase-阿里云
  下一篇:go DELETE__数据操作语言_SQL语法参考_云数据库 OceanBase-阿里云