批量添加MySQL数据是指一次性向MySQL数据库中插入多条记录,而不是逐条插入。这种操作通常用于初始化数据、导入大量数据或进行数据迁移等场景。
INSERT INTO ... VALUES (...), (...), ...
语法:这是最常见的批量插入方式,可以直接在SQL语句中列出多组值。LOAD DATA INFILE
语句:当需要从文件中导入大量数据时,可以使用此语句,它比逐条插入要快得多。pymysql
库中的executemany()
方法。原因:当一次性插入的数据量过大时,可能会导致数据库性能下降,甚至出现超时错误。
解决方法:
原因:当插入的数据中存在与已有数据主键重复的情况时,会导致主键冲突错误。
解决方法:
INSERT IGNORE
或REPLACE INTO
语句:INSERT IGNORE
会忽略主键冲突的错误,而REPLACE INTO
会删除冲突的记录并插入新记录。原因:当插入的数据中包含特殊字符或非ASCII字符时,可能会出现字符集不匹配的问题。
解决方法:
import pymysql
# 连接数据库
conn = pymysql.connect(host='localhost', user='root', password='password', db='test', charset='utf8mb4')
cursor = conn.cursor()
# 批量插入数据
data = [
('Alice', 25),
('Bob', 30),
('Charlie', 35)
]
sql = "INSERT INTO users (name, age) VALUES (%s, %s)"
cursor.executemany(sql, data)
# 提交事务
conn.commit()
# 关闭连接
cursor.close()
conn.close()
领取专属 10元无门槛券
手把手带您无忧上云