如何解决检查数据库中的现有条目还是重新创建表?
| 我有一个PHP脚本,它每隔4小时就会从服务器中提取一个文件并将其中的值插入数据库中。 该文件很可能会在4小时内(或我最终选择的任何时间范围内)更改。这是物业及其所有者的列表。 最好检查文件并将其与每个数据库条目进行比较,并在需要时进行更新,或者创建一个临时表,然后使用SQL查询对它们进行比较?解决方法
没有。
我个人要做的是使用
ON DUPLICATE KEY UPDATE
运行INSERT
命令(假设您的表设计正确,并且您正在使用文件中的至少一条信息作为UNIQUE
键,您应该根据自己的评论)。
原因
创建临时表很麻烦。
比较也很麻烦。您需要选择一条记录,比较一条记录,如果不相等,则更新记录,依此类推-比较一条信息只是浪费大量的时间,而且还有一种更好的方法。
如果仅插入找到的所有内容,并且发生冲突,这将容易得多,这意味着记录存在并且很可能需要更新。
这样,您只需执行一次查询就可以处理所有事情,并且还可以保留数据完整性,因此您可以继续填充表或使用新记录进行更新。
,我认为最好下载文件并更新现有表,也许使用REPLACE或REPLACE INTO。 \“ REPLACE的工作原理与INSERT完全相同,不同之处在于,如果表中的旧行与PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在插入新行之前删除该旧行。” http: //dev.mysql.com/doc/refman/5.0/en/replace.html
,大概您有一个必须匹配的列列表,以便您确定两件事是否匹配。
如果在这些列上创建UNIQUE索引,则可以使用INSERT ... ON DUPLICATE KEY UPDATE
(手动)或REPLACE INTO ...
(手动)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。