我想在存储过程中调用python脚本,从python返回结果并将其分配给mysql变量。这可能吗?我该怎么做?
谢谢。
答案 0 :(得分:0)
我使用Python MySQL数据库API - MySQLdb 做了类似的事情。您可以从here下载。我没有从存储过程中调用python脚本,反之亦然,即从python中调用存储过程,并将参数传递给它。
存储过程采用两种类型的参数(参数)。 IN
和OUT
。 IN
类型的参数是存储过程的输入,而OUT
类型的参数是存储过程的输出。您将能够通过以下示例更好地理解它。
假设这是我的存储过程。
CREATE PROCEDURE add(IN num1 INT, IN num2 INT, OUT add_result INT)
BEGIN
SET add_result := num1 + num2;
END;
现在在python shell中,您可以将两个参数传递给存储过程,并在add_result
变量中返回结果,该变量是存储过程的第三个参数。
>>> import MySQLdb
>>> mysql = MySQLdb.connect(user=User,passwd=Passwd,db="test_db")
>>> mysql_cursor = mysql.cursor()
>>> args = (5, 7, 0) # 0 is to hold value of the OUT argument add_result
>>> cursor.callproc('add', args)
('5', '7', 12L)
优雅,不是吗?有关此API的更多信息,请阅读这些链接。
希望这有帮助。