首页 > 解决方案 > 如何从 python 在 mysql 中创建存储过程?

问题描述

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

DELIMITER $$

USE `ipaybridge2`$$

DROP PROCEDURE IF EXISTS `masking`$$

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

END$$

DELIMITER ;

我得到的错误是:You have an error in your SQL syntax; it seems the error is around: 'DELIMITER $ $ USE `ipaybridge2` $ $ DROP PROCEDURE IF EXISTS `masking` $ $ CREAT' at line 1

标签: pythonmysqlstored-procedurespymysqlstored-functions

解决方案


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

DROP PROCEDURE IF EXISTS `masking`

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

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

END

尝试创建存储过程时请参阅错误


推荐阅读