MySQL 批量插入或更新

标签 mysql sql bulk

有没有办法在 MySQL 服务器上批量执行类似 INSERT OR UPDATE 的查询?

INSERT IGNORE ...

不起作用,因为如果该字段已经存在,它会简单地忽略它而不插入任何内容。

REPLACE ...

不会起作用,因为如果该字段已经存在,它会先DELETE它,然后再次INSERT它,而不是更新它。

INSERT ... ON DUPLICATE KEY UPDATE

可以,但不能批量使用。

所以我想知道是否有像 INSERT ... ON DUPLICATE KEY UPDATE 这样的命令可以批量发出(同时超过一行)。

最佳答案

可以使用 INSERT ... ON DUPLICATE KEY UPDATE 插入/更新多行。 documentation有以下例子:

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

还是我误解了你的问题?

关于MySQL 批量插入或更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286452/

相关文章:

mysql - "Questions"在 phpMyAdmin 中是否意味着 "queries"?

PHP/PDO : return query rows without foreach?

mysql - SQL - 如何通过将分号连接到数字来形成字符串?

sql - 使用Where和if else的存储过程

sql - xp_smtp_sendmail 空格随机添加到html

mysql - 在搜索 WordPress 中禁用默认正则表达式

mysql - 如何将远程位置 xml 文件数据加载到 mysql/(任何其他)数据库

sql-server-2005 - SQL Server 2005 中的死锁!两个实时批量更新正在战斗。为什么?

C# 使用 SQLBulkCopy 或等效库高效地批量删除 50000 条记录

sql-server - Sql Server中的大事务,有什么问题吗?