MySQL 存储过程:我做错了什么?
MySQL Stored Procedure: What I am doing wrong?
以下代码有什么问题(很基础的问题请见谅)
错误代码:1064。您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 3 行
附近使用的正确语法
CREATE PROCEDURE `getCleanData` ()
BEGIN
replace into CLEAN_TBL SELECT mycolumn FROM DIRTY_TBL;
END;
您需要将 DELIMITER 更改为默认值 ;
以外的内容。
DELIMITER 表示命令何时结束。默认情况下,分隔符是 ;
。由于过程本身在其语法(语句结尾)中使用 ;
,因此您需要将 DELIMITER 更改为其他内容,以便执行完整的过程代码。
步骤 01:更改服务器分隔符 -->
DELIMITER //
步骤 02:使用您在步骤 01 中使用的新分隔符创建过程
CREATE PROCEDURE `getCleanData` ()
BEGIN
replace into CLEAN_TBL SELECT mycolumn FROM DIRTY_TBL;
END
//
不要尝试恢复分隔符
欢迎专家的正确做法,因为我不确定什么是正确的方法.....但我觉得没有 CREATE PROCEDURE 的默认分隔符是错误的。
以下代码有什么问题(很基础的问题请见谅)
错误代码:1064。您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 3 行
附近使用的正确语法CREATE PROCEDURE `getCleanData` ()
BEGIN
replace into CLEAN_TBL SELECT mycolumn FROM DIRTY_TBL;
END;
您需要将 DELIMITER 更改为默认值 ;
以外的内容。
DELIMITER 表示命令何时结束。默认情况下,分隔符是 ;
。由于过程本身在其语法(语句结尾)中使用 ;
,因此您需要将 DELIMITER 更改为其他内容,以便执行完整的过程代码。
步骤 01:更改服务器分隔符 -->
DELIMITER //
步骤 02:使用您在步骤 01 中使用的新分隔符创建过程
CREATE PROCEDURE `getCleanData` ()
BEGIN
replace into CLEAN_TBL SELECT mycolumn FROM DIRTY_TBL;
END
//
不要尝试恢复分隔符
欢迎专家的正确做法,因为我不确定什么是正确的方法.....但我觉得没有 CREATE PROCEDURE 的默认分隔符是错误的。