python - 如何从 python 在 mysql 中创建存储过程?

标签 python mysql stored-procedures pymysql stored-functions

我正在尝试使用 pymysql 在 mysql 数据库中创建存储过程。 我有一个文件,其中包含创建存储过程的语句。 我正在使用cursor.execure(line) 逐行运行mysql 查询。 创建存储过程的查询在数据库上运行良好。但在 python 上,它们给出语法错误。

DELIMITER $$

USE `ipaybridge2`$$

DROP PROCEDURE IF EXISTS `masking`$$

CREATE DEFINER=`root`@`%` PROCEDURE `masking`()
BEGIN
 
 query statements;

END$$

DELIMITER ;

我得到的错误是这样的:您的 SQL 语法有错误;似乎错误是这样的:'DELIMITER $ $ USE `ipaybridge2` $ $ DROP PROCEDURE IF EXISTS `masking` $ $ CREAT' at line 1

最佳答案

pymsysql 不需要 DELIMITER 语句。因此,您应该已经连接到特定数据库,因此不需要 USE 语句。只需将以下内容作为单独的命令传递给 cursor.execute 即可:

DROP PROCEDURE IF EXISTS `masking`

然后传递给 cursor.execute 作为下一个命令:

CREATE DEFINER=`root`@`%` PROCEDURE `masking`()
BEGIN
 
 query statements;

END

See Error when trying to create stored procedure

关于python - 如何从 python 在 mysql 中创建存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68497195/

相关文章:

php - 如何以编程方式在共享 Linux 托管计划上创建 MySQL 数据库

C#/SQL 获取所有存储过程及其代码

python - 如何在 Python 中转义反斜杠和单引号或双引号?

python - 发送一封电子邮件,其中包含 DataFrames 作为电子邮件正文中的表格

python - 在 include() 中使用命名空间时有关 app_name 的错误配置错误

mysql - my.cnf 中的不同设置导致 "max key length is 1000 bytes"错误

python - python for循环中的原始步骤数

PHP 解析错误 : syntax error, 意外的 T_CLASS

sql - 在存储过程中,是简单地查询数据还是构造一个查询然后执行它更好?为什么?

mysql - 如何使用存储过程从 01-04-2014 到当前日期之间的 mysql 数据库中获取数据