mysql,dos下执行SQL语句创建存储过程出错ERROR 1064 (42000):

update1.sql的内容为

DROP PROCEDURE IF EXISTS pcName;
CREATE PROCEDURE pcName()
BEGIN
select 'a';

END;

dos下执行如下命令

C:\SZXYS\METSDatabase\mysql\bin>mysql -uunsername -ppassword dbname<update1.sql

报语法错误

ERROR 1064 (42000):you have an error in your sql syntax;www.kobsky.cn 小眼世界৑̇ÿ³\B`

check the manual that corresponds to your mysql server version...

原因:

是dos下把分号(;)当成了存储过程的结束符,所以出错了。

解决方法,需要加上DELIMITER关键字,声明什么符号做为存储过程结束的分界符,修改如下,则可以执行

DROP PROCEDURE IF EXISTS pcName;

DELIMITER $$
CREATE PROCEDURE pcName()
BEGIN
select 'a';
END;

$$

DELIMITER ;

原文地址:https://www.cnblogs.com/lingxzg/p/1787692.html