吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 150|回复: 2
收起左侧

[经验求助] mqsql语句执行出现语法错误怎么处理

[复制链接]
chenjian0032 发表于 2024-11-8 15:58
60吾爱币
求问各位大佬,我这边有个py脚本,通过调用AI写了一个存储过程,对AI生成的结果进行筛选后,连接本地数据库让其自动执行,在执行时出现报错,如红字所示:
This will insert 6 records with `id` set to '55' and `name` set to 'rer' into the table `qqq`.
正则匹配的结果:DELIMITER //

CREATE PROCEDURE gfd()
BEGIN
    DECLARE i INT DEFAULT 0;
    WHILE i < 6 DO
        INSERT INTO qqq (id, name) VALUES (`55`, `rer`);
        SET i = i + 1;
    END WHILE;
END //

DELIMITER ;

An error occurred: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1")


请问需要怎么修改脚本使这个存储过程能成功执行,这是在python窗口打印出来的

最佳答案

查看完整内容

因为 DELIMITER 命令不是 SQL 语句的一部分,而是 MySQL 客户端工具(如 MySQL 命令行客户端)中的命令。因此,当你在 SQL 脚本中使用它时,会导致语法错误。 要解决这个问题,你需要确保在执行存储过程定义之前和之后正确设置和恢复分隔符。以下是修正后的代码: [mw_shl_code=asm,true]-- 设置新的分隔符为 // DELIMITER // CREATE PROCEDURE gfd() BEGIN DECLARE i INT DEFAULT 0; WHILE i < 6 DO ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

孤狼微博 发表于 2024-11-8 15:58
因为 DELIMITER 命令不是 SQL 语句的一部分,而是 MySQL 客户端工具(如 MySQL 命令行客户端)中的命令。因此,当你在 SQL 脚本中使用它时,会导致语法错误。

要解决这个问题,你需要确保在执行存储过程定义之前和之后正确设置和恢复分隔符。以下是修正后的代码:
[Asm] 纯文本查看 复制代码
-- 设置新的分隔符为 //
DELIMITER //

CREATE PROCEDURE gfd()
BEGIN
    DECLARE i INT DEFAULT 0;
    WHILE i < 6 DO
        INSERT INTO qqq (id, name) VALUES (55, 'rer');
        SET i = i + 1;
    END WHILE;
END //

-- 恢复默认的分隔符为 ;
DELIMITER ;



我也是问的ai
Cristy 发表于 2024-11-8 17:43
本帖最后由 Cristy 于 2024-11-8 17:44 编辑

试了下楼上的没报错
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表