我可以用 sqlalchemy 一条一条地执行 MySQL 语句。
from sqlalchemy.sql import text
ipass = "xxxx"
mysql_ip = "xxxx"
link = create_engine("mysql+pymysql://root:{}@{}:3306/?charset=utf8".format(ipass,mysql_ip))
sql1 = text("use dbname;")
sql2 = text("truncate table table_name;")
sql3 = text("alter table table_name auto_increment=1;")
link.execute(sql1)
link.execute(sql2)
link.execute(sql3)
这很好用。我希望所有三个 mysql 语句在一个执行命令中运行:
sql = text("""
use dbname;
truncate table table_name;
alter table table_name auto_increment=1;
""")
result = link.execute(sql)
错误信息返回:
You have an error in your SQL syntax...
在 sqlalchemy 中没有办法对多个 SQL 语句进行批处理吗?
那么如何在create_engine语句中加入client_flag=CLIENT.MULTI_STATEMENTS
呢?
最佳答案
我前段时间遇到了同样的问题,它在驱动程序级别(pymysql
),你需要在create_engine
调用,看维护者友情回复https://github.com/PyMySQL/PyMySQL/issues/770
关于mysql - 使用sqlalchemy同时执行多条sql语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57949790/