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

标签 php mysql linux cron

我在尝试创建一个从表中的第 1 列复制到第 2 列的 cron 作业时遇到了问题。我需要做的是,如果第 1 列数据已经在第 2 列中,则什么也不做,如果不添加到第 2 列。

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

最佳答案

当第 1 列中的数据等于第 2 列中的数据时,更新该行有什么坏处?

更新表 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 = ?哪里 id = ?

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

阅读您的新评论后,我提出以下建议

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

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

关于php - Cron 作业将 MySql 数据从一列复制到另一列(如果不存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33037144/

相关文章:

php - 正则表达式捕获第一个可选字符串之前的所有内容

c - 来自 socket() 调用的错误

c - 如果我是一线程写多读,怎么只写锁不读锁呢?

php - 指令 'magic_quotes_gpc' 在 PHP 5.3 和更高的 laravel 中被弃用

php - 是否有与 Python os.path.normpath() 等效的 PHP 函数?

php - 表的左连接获得如此多的记录。 php pdo mysql

mysql - 超过mysql每小时最大连接数

mysql - SQL查询结果返回集相同的id具有不同的值

php - 哪个 CMS 可以混合启用 CMS 的页面和我的 PHP 程序?

linux - 将 'here document' 文本 block 编入新文件