- 区切り文字を以外に設定する必要があります
;コード>
- オプションで、同じ名前のストアドプロシージャがすでに存在するかどうかを確認します。
- 最後に、区切り文字を
;
に再定義します。 - ただし、変数
x
を使用する場合を除きます。 このストアドプロシージャの外部。本当に@
を使用する必要はありません;その特定のセッションのどこでも変数を使用できるようにします。
試してみてください(コメントでより多くの説明):
CREATE TABLE t1 (s1 INT, PRIMARY KEY (s1)); -- create the table
DELIMITER $$ -- redefine the delimiter to $$ (for eg)
DROP PROCEDURE IF EXISTS `handlerdemo` $$ -- drop previous if exists
CREATE PROCEDURE handlerdemo ()
BEGIN
DECLARE x INT DEFAULT 0; -- datatype is INT
-- also a good practice to set default value
SET x = 1; -- no need to use in Session context
INSERT INTO t1 VALUES (x); -- use variable name here instead of literal value
SET x = 2;
INSERT INTO t1 VALUES (x);
END $$ -- remember that delimiter is $$ right now
-- redefine the Delimiter back to ;
DELIMITER ;