繁体   English   中英

我如何在 python 中使用 sqlalchemy 调用 mysql function?

[英]how can i call mysql function using sqlalchemy in python?

我正在尝试从 python 在 mysql 中调用 function 这是我使用 ZF3D386AADEEB6063DZ16E4DF52EZ 的代码

CREATE DEFINER=`root`@`localhost` FUNCTION `my_function`() RETURNS int
    READS SQL DATA
    DETERMINISTIC
BEGIN
insert into employeedata (select * from employee where joiningdate <'20160101');


RETURN 1;
END
engine=sqlalchemy.create_engine('mysql+pymysql://root:root@localhost:3306/sasft')

pd.read_sql_query("select my_function()", engine)

也尝试使用 MySQL 连接器。

function 是通过工作台而不是从 python 调用的。 它没有给我任何它正在执行的错误,但结果没有改变。

如果您只想运行 function,则不需要使用 Pandas SQL 接口。 您可以使用以下内容:

from sqlalchemy import text

with engine.connect() as connection:
    result = connection.execute(text("SELECT my_function()"))
    print(result)

参考: 了解自动提交

text()然后将“强制”此自动提交。

另一种方法是使用具有显式autocommit执行选项的上下文管理器:

with engine.connect().execution_options(autocommit=True) as connection:
   connection.execute("SELECT my_function()")

要使用 SQLalchemy 连接而不是 Pandas API 来测试 MWE 示例,假设您想从表table_name中读取 10 个项目:

with engine.connect() as connection:
    rs = connection.execute("SELECT * FROM table_name LIMIT 10")
    for row in rs:
        print(row)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM