加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 海宁网 (https://www.hainingwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php – “REPLACE INTO”与INSERT [IF]

发布时间:2021-05-22 11:15:24 所属栏目:编程 来源:网络整理
导读:好吧,我有一个问题,不是真正的问题. 我的数据库中有一个表,相当小,只有3列,但有可能增长.我有两个问题的解决方案,但不知道为什么要使用其中一个. 我有一段数据,可能已经存在,也可能不存在于数据库中.解决这个问题的两种方法.我有唯一的ID,所以很容易检查. 检

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

我的数据库中有一个表,相当小,只有3列,但有可能增长.我有两个问题的解决方案,但不知道为什么要使用其中一个.

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

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

我现在的问题是.哪一个更好用.使用2个结果中的任何一个有什么利弊.还是有更好的结果?

注意,数据完全相同,因此记录不可能使用较新的值进行更新.因此,REPLACE INTO将插入已存在的数据.

最佳答案 这里不推荐REPLACE INTO – 你真的不需要更换任何东西.它执行DELETE后跟INSERT,带来所有后果.例如,必须更新所有索引,如果频繁使用它,将导致不必要的工作和索引碎片.

另一方面,有ON DUPLICATE KEY UPDATE,它主要用于计数器,但你没有以增量或任何其他值更改来更新你的行,所以你必须使用像SET id = id或类似的奇怪的语法.

检查数据库中是否存在记录对您来说是最佳解决方案,但是不要使用其他查询,而是让mysql对您进行检查并使用:

`INSERT IGNORE INTO ...`

这样,如果您尝试插入具有重复唯一键或主键的任何行,则不会在不生成任何错误的情况下插入它.请注意可能缺少其他错误消息的副作用,但如果您确切知道插入的内容,则应该没问题.

(编辑:财气旺网 - 海宁网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!