使用 Python 在 MySQL 数据库中创建存储过程
创建存储过程的代码如下:
import mysql.connector db = mysql.connector.connect( host="localhost", user="username", password="password", database="mydatabase" ) cursor = db.cursor() # 创建存储过程 def create_procedure(): procedure_query = ''' CREATE PROCEDURE get_len(IN str VARCHAR(255), OUT length INT) BEGIN SELECT CHAR_LENGTH(str) INTO length; END ''' cursor.execute(procedure_query) # 调用存储过程并输出结果 def call_procedure(str): cursor.callproc('get_len', [str,]) for result in cursor.stored_results(): print(result.fetchall()) create_procedure() # 测试存储过程 call_procedure("pidancode.com") call_procedure("皮蛋编程")
首先连接 MySQL 数据库,并定义一个光标对象 cursor。然后定义了一个名为 create_procedure 的函数来创建存储过程。创建存储过程的 SQL 语句是通过字符串定义的,在这里创建一个名为 get_len 的存储过程,该存储过程接受一个字符串参数并返回该字符串的长度。CREATE PROCEDURE 关键字用于创建存储过程,IN 和 OUT 关键字用于指定参数类型。存储过程体使用 BEGIN ... END 将 SQL 语句封装在其中。使用 execute() 方法执行 SQL 语句。
接下来定义了一个名为 call_procedure 的函数,该函数用于调用刚刚创建的存储过程,并输出结果。使用 callproc() 方法调用存储过程,该方法接受两个参数:存储过程名称和参数列表。使用 stored_results() 方法获取结果集,然后使用 fetchall() 方法获取结果。
最后,我们创建了一个存储过程,并使用调用这个存储过程。第一次调用传入字符串 “pidancode.com”,第二次调用传入字符串 “皮蛋编程”。程序输出了两个字符串的长度,分别为 12 和 4。
相关文章