MySQL 批量插入(Batch Insert)是指一次性向数据库表中插入多条记录,而不是逐条插入。这种操作可以显著提高数据插入的效率,因为它减少了与数据库服务器之间的通信次数。
MySQL 批量插入主要有以下几种方式:
INSERT INTO ... VALUES
语法:INSERT INTO ... VALUES
语法:INSERT INTO ... SELECT
语法:INSERT INTO ... SELECT
语法:批量插入适用于以下场景:
MySQL server has gone away
错误原因:这个错误通常是由于插入的数据量过大,超过了 MySQL 服务器的最大允许包大小(max_allowed_packet
)。
解决方法:
max_allowed_packet
的大小:max_allowed_packet
的大小:Duplicate entry
错误原因:插入的数据中存在重复的键值,违反了表的唯一性约束。
解决方法:
INSERT IGNORE
语法忽略重复的记录:INSERT IGNORE
语法忽略重复的记录:ON DUPLICATE KEY UPDATE
语法更新重复的记录:ON DUPLICATE KEY UPDATE
语法更新重复的记录:以下是一个使用 Python 和 MySQL Connector 进行批量插入的示例:
import mysql.connector
# 连接到 MySQL 数据库
cnx = mysql.connector.connect(user='user', password='password',
host='host', database='database')
cursor = cnx.cursor()
# 准备批量插入的数据
data = [
('value1', 'value2', 'value3'),
('value4', 'value5', 'value6'),
# ...
]
# 执行批量插入
query = "INSERT INTO table_name (column1, column2, column3) VALUES (%s, %s, %s)"
cursor.executemany(query, data)
# 提交事务
cnx.commit()
# 关闭连接
cursor.close()
cnx.close()
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云