Mysqlストレージ・プロシージャの作成時にERROR 1064(42000):が表示される理由の1つ

1098 ワード

次のErrorメッセージ、皆さんはよく知っているでしょう.
ERROR 1064 (42000):ERROR 1064 (42000): 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 'DECLARE i INT DEFAULT 0' at line 1
Linuxで最も簡単なストレージ・プロシージャを作成すると、エラーが発生しました.
DROP PROCEDURE IF EXISTS GameServerMergePro;
CREATE PROCEDURE `GameServerMergePro` (
	IN dbSchema VARCHAR(50) character set utf8,
	IN sName VARCHAR(50) character set utf8,
	OUT error_code INT
) 
begin
DECLARE ddddi INT DEFAULT 0;
end;

長い間考えていたが、Mysql解釈器が出会った.日で終わり、車に戻ってから実行しました.しかし、ストレージ・プロシージャでは
多くのセミコロンの文を含んで、だからどのようにして、とても简単なMysqlは私达にdelimiterのキーワードを提供して、delimiterの作用はセミコロンは、//または$$などの指定された記号に置き換えられます.//または$$が再表示されると、Mysql解釈器はコマンドを実行します.
スクリプトを次のように変更すると、実行はエラーを報告しません.
DELIMITER // 
DROP PROCEDURE IF EXISTS GameServerMergePro;
CREATE PROCEDURE `GameServerMergePro` (
	IN dbSchema VARCHAR(50) character set utf8,
	IN sName VARCHAR(50) character set utf8,
	OUT error_code INT
) 
begin
DECLARE ddddi INT DEFAULT 0;
end;
//
DELIMITER ;