如何使用executemany()插入多行但忽略错误行?

3 投票
1 回答
4461 浏览
提问于 2025-04-17 21:07

我正在使用 Python 的 MySQLdb 库把数据插入到 MySQL 数据库中。

InsertList 里有很多行数据。大部分都是有效的,只有少数几行违反了数据库的完整性规则。

如果我运行下面的代码,命令就会返回一个错误。

Cursor1.executemany(query, InsertList)

我该如何让 executemany() 插入有效的行,而忽略那些有问题的行呢?这些有问题的行是因为新行中有重复的值。难道我必须一个一个地用 execute() 来插入这些行吗?

谢谢你的帮助。

1 个回答

14

使用这个SQL命令

INSERT IGNORE INTO

而不是简单的

INSERT INTO

这里有一个文档的参考链接。注意,还有INSERT REPLACE(可以用新值替换重复的记录)和INSERT ... ON DUPLICATE KEY UPDATE(可以更灵活地处理重复的键)这两个选项。

撰写回答