20564


以下のsqlだとsyntax errorになっていまいます。どう修正すればよいでしょうか？

[code]

    CREATE PROCEDURE sample()                                                                                                    
    
    BEGIN                                                                                                    
        DECLARE counter INT DEFAULT 2;
    END;
    
[/code]


CC BY-SA 3.0
2016-01-03T07:40:16.343
20559
2016-01-03T12:22:45.003
13859
question
mysql
mysqlでDECLAREが使えない


mysql コマンドは `;` をクエリの区切りと認識し、そこまでの文字列をサーバーに送信してしまいます。

まず delimiter でクエリの区切り文字を別の文字に変更してから CREATE PROCEDURE を行えばよいと思います。

[code]

    mysql> delimiter //
    mysql> CREATE PROCEDURE sample()
        -> BEGIN
        ->     DECLARE counter INT DEFAULT 2;
        -> END
        -> //
    mysql> delimiter ;
    
[/code]

マニュアルにも記述があります。  
<https://dev.mysql.com/doc/refman/5.6/ja/create-procedure.html>


CC BY-SA 3.0
2016-01-03T12:22:45.003
20564
2016-01-03T12:22:45.003
3249
20559
answer