使用机器人框架执行包含 SQL 脚本的存储过程
P粉031492081
P粉031492081 2023-08-28 22:08:52
[MySQL讨论组]

我想运行包含数据库和表创建以及存储过程创建的sql脚本。 但是当我尝试使用execute sql script关键字在database library中运行sql脚本时,我会得到以下错误:

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DELIMITER $$\n CREATE OR
 REPLACE PROCEDURE `proc_GetCustomerDetails`(\n   I...' at line 2")

在存储过程之前,我有这样的delimiter

DELIMITER $$
CREATE OR REPLACE PROCEDURE `proc_GetCustomerDetails`(
  IN CustomerNbr LONGTEXT,
  IN Lang VARCHAR(5)
)

DETERMINISTIC

BEGIN

IF Lang IS NULL THEN SET  lang = "fin";
END IF;


SELECT * from dbname.customer;

END;$$
DELIMITER ;

如果我注释掉存储过程部分,sql文件将在其余的表创建语句中运行而不会出错。

我在谷歌上搜索了一下,没有找到相关的问题。我看到我们有调用存储过程的关键字。但是我想把表创建和存储过程放在同一个sql文件中并运行。我在这个任务中使用的是MariaDB。

使用的库

  • pymysql
  • 机器人框架数据库库

如果我使用HeidiSQL运行sql文件,它将在存储过程和分隔符中运行而不会出现任何错误。这意味着没有sql错误。

有人能告诉我如何解决这个问题吗?

P粉031492081
P粉031492081

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号