使用 Python 在 MySQL 数据库中创建存储过程

2023-04-05 00:00:00 创建 存储过程 数据库中

创建存储过程的代码如下:

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。

相关文章