php – “REPLACE INTO”与INSERT [IF]
|
好吧,我有一个问题,不是真正的问题. 我的数据库中有一个表,相当小,只有3列,但有可能增长.我有两个问题的解决方案,但不知道为什么要使用其中一个. 我有一段数据,可能已经存在,也可能不存在于数据库中.解决这个问题的两种方法.我有唯一的ID,所以很容易检查. >检查数据库中是否存在记录,如果不存在,则INSERT INTO数据库 我现在的问题是.哪一个更好用.使用2个结果中的任何一个有什么利弊.还是有更好的结果? 注意,数据完全相同,因此记录不可能使用较新的值进行更新.因此,REPLACE INTO将插入已存在的数据. 最佳答案 这里不推荐REPLACE INTO – 你真的不需要更换任何东西.它执行DELETE后跟INSERT,带来所有后果.例如,必须更新所有索引,如果频繁使用它,将导致不必要的工作和索引碎片.另一方面,有ON DUPLICATE KEY UPDATE,它主要用于计数器,但你没有以增量或任何其他值更改来更新你的行,所以你必须使用像SET id = id或类似的奇怪的语法. 检查数据库中是否存在记录对您来说是最佳解决方案,但是不要使用其他查询,而是让mysql对您进行检查并使用:
这样,如果您尝试插入具有重复唯一键或主键的任何行,则不会在不生成任何错误的情况下插入它.请注意可能缺少其他错误消息的副作用,但如果您确切知道插入的内容,则应该没问题. (编辑:南阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- php – mysqli_fetch_all没有在共享主机上工作,需要替代
- mysql – 如何设置SQL以查找从上周日到本周日的记录(1周)
- 如何在Windows 8.1中的git bash中启动Mysql
- Mysql 解决net start mysql启动,提示发生系统错误5 拒绝访
- php – 将日期转换为此格式
- mysql – 同步本地和现场wordpress数据库的推荐最佳工作流程
- sqlalchemy和flask-sqlalchemy的几种分页方法
- php – Facebook在哪里存储数百万图像和视频.在数据库或其他
- c# – 在Windows 10更新1803之后,我的程序在从网络共享运行
- 如何在使用MySQL排序时排除一些值?
