MySQL中的“ REPLACE”和“ INSERT…ON DUPLICATE KEY?mysql-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MySQL中的“ REPLACE”和“ INSERT…ON DUPLICATE KEY?mysql

2020-05-17 19:22:47 258 1

我需要的是使用特定键(实际上是复合键)设置记录的所有字段的值,如果还没有使用该键的记录,则插入记录。

REPLACE似乎可以完成这项工作,但与此同时,其手册页也显示 INSERT ... ON DUPLICATE KEY UPDATE。

我最好选择其中哪些?为什么?

REPLACE我想到的唯一“副作用” 是它会增加自动增量值(幸运的是我不使用任何值),而INSERT ... ON DUPLICATE KEY UPDATE可能不会。还有其他需要注意的实际差异吗?在哪些特定情况下可以REPLACE优先选择INSERT ... ON DUPLICATE KEY UPDATE,反之亦然?

取消 提交回答
全部回答(1)
  • 保持可爱mmm
    2020-05-17 19:31:27

    REPLACE内部执行删除操作,然后执行插入操作。如果您有指向该行的外键约束,则可能会导致问题。在这种情况下,REPLACE可能会失败甚至更糟:如果将外键设置为级联删除,REPLACE则将导致其他表中的行被删除。即使在REPLACE操作前后都满足约束条件,也会发生这种情况。

    使用INSERT ... ON DUPLICATE KEY UPDATE避免了这个问题,因此是首选。来源:stack overflow

    0 0
相关问答

1

回答

【RDS】RDS MySQL如何修改字符集?

2022-01-14 13:30:10 589浏览量 回答数 1

1

回答

【RDS】RDS MySQL字符集相关SQL语句是什么?

2022-01-14 13:28:31 573浏览量 回答数 1

1

回答

【RDS】RDS MySQL如何查看相应数据库的字符集?

2022-01-14 13:20:40 519浏览量 回答数 1

1

回答

【RDS】RDS MySQL字符集的字符序是以什么规则命名的?

2022-01-14 13:17:59 446浏览量 回答数 1

1

回答

【RDS】RDS MySQL实例使用中出现表级锁等待的情况,是什么原因?

2022-01-14 13:10:04 486浏览量 回答数 1

1

回答

【RDS】RDS MySQL 5.7与RDS MySQL 5.6中,全文检索字符个数不同是什么原因?

2022-01-14 11:57:40 465浏览量 回答数 1

1

回答

【RDS】like语句和RDS MySQL全文检索比较有什么区别?

2022-01-14 11:53:56 543浏览量 回答数 1

1

回答

【RDS】RDS MySQL对中文全文检索支持吗?

2022-01-14 11:51:02 439浏览量 回答数 1

1

回答

【RDS】RDS MySQL如何终止会话?

2022-01-12 16:17:02 468浏览量 回答数 1

1

回答

RDS MySQL如何终止会话?

2022-01-07 14:15:23 886浏览量 回答数 1
66
文章
12595
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载