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 ループを使用する方法を教えてください。ありがとうございました。