mysql - ON DUPLICATE KEY UPDATE 每列,除了

标签 mysql sql duplicates

我通过套接字使用 mysql,并且要更新 4000 条记录,因此我需要批量 INSERT/UPDATE 它们以减少网络延迟。问题是我有一个列 datetime_inserted ,我想在第一次插入记录时将其设置为 NOW() ,但当它已经存在时永远不会被替换,因此 REPLACE 不是一个选项,我想更新记录,因此 IGNORE 不起作用。

我不太明白整个ON DUPLICATE KEY UPDATE,但我希望更新每一列(40 左右),除了 datetime_inserted

我该怎么做?

最佳答案

INSERT INTO the_table (col1,col2,...,datetime_inserted) VALUES(value1,value2,...,NOW())
ON DUPLICATE KEY UPDATE SET col1=VALUES(col1), col2=VALUES(col2), ... #skip the datetime_inserted for the updates

关于mysql - ON DUPLICATE KEY UPDATE 每列,除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11712404/

相关文章:

javascript - 在 graphql 解析器中从 mySQL 查询现有链接表?

mysql - 数据库建模: Product with 1 or more categories

sql - 数据库: Are "TEXT" fields less efficient than "varchar"?

string - 什么是就地算法?

mysql - 执行 SQL 脚本时出错;该进程无法访问该文件,因为它正被另一个进程使用 :'C:\\Users\\......\....cnf'

mysql - 使用大数据集Mysql在两组日期中找到最接近的较低日期

python - 为什么我没有在 python 变量中恢复与表中的 SQL 相同的计数

mysql - 跨多个联接表的 SQL 查询

python在列表中计数重复

mysql - 从表中删除具有相同 DisplayID 的重复项