chenjian0032 发表于 2024-11-8 15:58

mqsql语句执行出现语法错误怎么处理

求问各位大佬,我这边有个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窗口打印出来的

孤狼微博 发表于 2024-11-8 15:58

因为 DELIMITER 命令不是 SQL 语句的一部分,而是 MySQL 客户端工具(如 MySQL 命令行客户端)中的命令。因此,当你在 SQL 脚本中使用它时,会导致语法错误。

要解决这个问题,你需要确保在执行存储过程定义之前和之后正确设置和恢复分隔符。以下是修正后的代码:
-- 设置新的分隔符为 //
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 编辑

试了下楼上的没报错
页: [1]
查看完整版本: mqsql语句执行出现语法错误怎么处理