mysql - 使用sqlalchemy同时执行多条sql语句

标签 mysql python-3.x sqlalchemy execute pymysql

我可以用 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/

相关文章:

mysql - 当表日期时间现在过去时触发脚本()

php - 迭代列

python - 让函数等待,直到返回 'n' 个结果

python - 来自韧性模块的 "Retry"不适用于生成器

涉及 map 和 reduce 的 Python 怪异

Python Unicode、Pyramid、UTF-8 MySQL 表问题

python - SQLAlchemy - 有没有办法查看当前 session 中的内容?

php - 如何使用 PHP 在单个 foreach 循环中将三个值添加到数据库中?

未使用 mysql 5.1.37 查询索引

php - 将 mysqli 分页转换为准备好的语句分页