gpt4 book ai didi

php - "REPLACE INTO"与 INSERT [IF]

转载 作者:可可西里 更新时间:2023-11-01 07:01:37 24 4
gpt4 key购买 nike

好吧,我有一个问题,不是真正的问题。

我的数据库中有一个表,相当小,只有 3 列,但有增长的潜力。我的问题有两种解决方案,但不确定为什么要使用其中一种。

我有一段数据,它可能已经存在也可能不存在于数据库中。解决这个问题的两种方法。我有唯一的ID,所以很容易检查。

  1. 检查记录是否存在于数据库中,如果不存在,则INSERT INTO数据库
  2. 使用 REPLACE INTO,因为我已经有了 ID。

我现在的问题是。哪个更好用。使用这两个结果中的任何一个的优缺点是什么。还是有更好的结果?

请注意,数据完全相同,因此记录不可能更新为更新的值。因此 REPLACE INTO 将插入已经存在的数据。

最佳答案

REPLACE INTO 不推荐在这里 - 你真的不需要替换任何东西。它先执行 DELETE,然后执行 INSERT,并产生所有后果。例如,所有索引都必须更新,如果您经常使用它,这会导致不必要的工作和索引碎片。

另一方面,ON DUPLICATE KEY UPDATE,主要用于计数器,但您不会使用增量或任何其他值更改来更新行,因此您将不得不使用 weird像 SET id=id 或类似的语法。

检查记录是否存在于数据库中对你来说是最好的解决方案,但不要使用另一个查询让 mysql 为你检查并使用:

`INSERT IGNORE INTO ...`

这样,如果您尝试插入任何具有重复的唯一键或主键的行,它就不会被插入而不会产生任何错误。请注意可能遗漏其他错误消息的副作用,但如果您确切知道插入的内容应该没问题。

关于php - "REPLACE INTO"与 INSERT [IF],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9267294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com