使用表 2 更新表 1,然后截断表 2


Update table 1 with table 2 then truncate table 2

正如我在另一个查询中发布的那样,我有一个包含推文的MYSQL表,并使用PHP填充它。为了确保没有重复的帖子,它会在更新之前检查表中的最后一个 ID,我认为这就是为什么当试图让它检查retweet_count失败时失败的原因(它忽略了已经存储的推文)。

我的解决方法是使用相同的脚本填充第二个表,然后运行以下两个 SQL 命令:

 UPDATE table1 JOIN table2 ON table2.col1 = table1.col1 SET table1.col2 = table2.col2;

其次

 TRUNCATE TABLE table2;

它更新第一个表,然后清空(不是删除,只是修剪)第二个表,以便我可以重复。

问题是如何在PHP中编写它,以便首先执行JOIN命令,然后执行TRUNCATE命令?谢谢

您的建议 - 在生产系统中存储冗余数据并使用 truncate 定期进行清理 - 并不是最好的方法。

相反,我建议您考虑关闭自动提交并使用启动事务,提交和可选的回滚(http://dev.mysql.com/doc/refman/5.1/en/commit.html)。

您将看到您可以创建一个同时完成多件事的工作单元,而不必依赖您的建议。