1

SQLファイルでfor/whileループを使いたいです。proc sqlを定義しました。ところでエラーがあります。

<changeSet id="trade_proc" author="alex">
        <sqlFile endDelimiter="//" path="trade.h2.proc.sql" stripComments="true" />
    </changeSet>

----------------------- sql ファイル ----------

drop procedure if exists proc;

create procedure proc()

begin
declare v_max int unsigned default 3;
declare v_counter int unsigned default 0;
while v_counter < v_max do  
...

end while;
end //

--------------- エラー ------------ Liquibase の実行中に予期しないエラーが発生しました: 変更セット changelog.xml::trade_history_20200728_proc::alex の移行に失敗しました: 理由: liquibase.exception.DatabaseException: SQL 構文にエラーがあります。near 'create procedure proc() を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

3 行目で v_max の宣言を開始 [Failed SQL: (1064) drop procedure if exists proc;

プロシージャ proc() の作成

======== その理由は?または、liquibase mysql で while/for ループを使用する方法を教えてください。ありがとうございました。

4

0 に答える 0