Cron作业将MySql数据从一列复制到另一列(如果它不存在)

时间:2015-10-09 11:28:43

标签: php mysql linux cron

我遇到了一个问题,我正在尝试创建一个从表1中的第1列复制到第2列的cron作业。我需要说明,如果第1列数据已经在第2列,那么什么都不做,如果没有添加到第2列。

有没有人对如何实现这一目标有任何提示或建议?

1 个答案:

答案 0 :(得分:0)

当第1列中的数据等于第2列中的数据时,无论如何更新行有什么危害?

UPDATE table SET column2 = column1

数据总是在第2列中设置,但是当它已经是相同的数据时,第1列什么都没有改变

阅读完评论后,我建议如下:

删除第2列并创建一个名为previous_usernames的新表 向该表添加3列 iduser_idusername

更改用户名时更新此表,而不是之后使用cron更新此表。这是不必要的复杂。

首先运行此查询INSERT INTO previous_usernames (user_id, username) (SELECT id, username FROM users WHERE id = ?)

然后运行此查询UPDATE users SET username = ? WHERE id = ?

如果您想确保正确存储旧用户名,可以使用transactions

阅读新评论后,我建议如下

您可以在用户名和GUID列上创建UNIQUE索引,并尝试插入每一行。当存在用户名和GUID组合时,查询将失败并且不插入记录。

How do I specify unique constraint for multiple columns in MySQL?