gpt4 book ai didi

python - 通过 sqlalchemy 执行时启用执行多个语句

转载 作者:IT王子 更新时间:2023-10-28 23:49:08 25 4
gpt4 key购买 nike

我有一个包含创建函数语句的 DDL 对象 (create_function_foo)。在它的第一行我放了 DROP FUNCTION IF EXISTS foo; 但是 engine.execute(create_function_foo) 返回:

sqlalchemy.exc.InterfaceError: (InterfaceError) Use multi=True when executing multiple statements

我将 multi=True 作为 create_engineengine.execute_optionsengine.execute 的参数,但它不起作用。

注意:engine 如果我的 create_engine

实例

注意:我使用的是 python 3.2 + mysql.connector 1.0.12 + sqlalchemy 0.8.2

create_function_foo = DDL("""\
DROP FUNCTION IF EXISTS foo;
CREATE FUNCTION `foo`(
SID INT
) RETURNS double
READS SQL DATA
BEGIN
...
END
""")

我应该把它放在哪里?

最佳答案

multi=True 是 MySql 连接器的要求。您不能设置此标志并将其传递给 SQLAlchemy 方法。这样做:

conn  = session.connection().connection
cursor = conn.cursor() # get mysql db-api cursor
cursor.execute(sql, multi=True)

更多信息在这里:http://www.mail-archive.com/sqlalchemy@googlegroups.com/msg30129.html

关于python - 通过 sqlalchemy 执行时启用执行多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19783404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com