1.20 大坑

今天看 mysql 的时候遇到了一个大坑,以至于我不得不写点东西记下来。

发现 python 的 mysql-connector 的 execute 函数有一个 multi 的参数,表面意思是“该参数为 True 时能一次执行多条 SQL 语句”。

用上了,很流畅,啥错没报。

但是,回头看数据库,毫无变化,SQL 语句一条都没执行。

看代码,该 commit 都 commit,close的也 close 了,没有一点破绽。

纳闷半天才,发现还是 multi 参数的问题,mysql 的官方文档一句没提。

stackoverflow 上有个回答,需要使用 for 循环。

以上。

https://stackoverflow.com/questions/15288594/update-database-with-multiple-sql-statments

1
2
3
4
5

for result in cursor.execute(SQL, multi=True):

​ pass