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

```

    CREATE PROCEDURE sample()                                                                                                    
    
    BEGIN                                                                                                    
        DECLARE counter INT DEFAULT 2;
    END;
    
```
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 を行えばよいと思います。

```

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

マニュアルにも記述があります。  
<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