目次

カスタム SQL

“sql” タグを利用することで、どんな SQL でも書くことができます。LiquiBase の自動化されたリファクタリングでは対応していない複雑な変更を記述したり、LiquiBase の不具合や制限事項を回避するのに役立ちます。sql タグに含まれる SQL は複数の行に渡ることも可能です。

ストアドプロシージャの作成 リファクタリングは、ストアドプロシージャを作成するのにもっともよい方法です。

“sql” タグは、同一ファイルに複数行にわたる SQL 文を記述できます。SQL文は、; を SQL 文の最後に書いたり、SQL 文の間に go を書くことで分割できます。複数行にわたる SQL 文は、; または go にのみ対応しており、改行するだけでは十分でありません。ファイルにひとつの SQL 文しかない場合は、; も go も必要ありません。

SQL は下記のようなフォーマットでコメントを含むことが可能です:

  1. /* で始まり、*/ で終わる複数行のコメント。
  2. <スペース>–<スペース> 形式の単一行末のコメント。

注意: デフォルトでは、行末の ”;” または “go” で SQL 文は分割されます。このため、コメントまたは SQL 文でなくて、 ”;” または、”go” で終わる場合、それを行末に記述すると無効な SQL 文になります。

<sql>insert into person (id, name) values (1, 'Bob')</sql>

利用可能な属性

stripComments true に設定することで、SQL を実行する前にあらゆるコメントを削除します。false の場合は削除しません。デフォルトは false です。
splitStatements LiquiBase に SQL 文を ; または go で分割させたくない場合に false に設定します。デフォルトは true です。
endDelimiter 文を完了させるための区切り文字。デフォルトは”;” ですが ”” のように設定もできます。

データベースの互換性

MySQL 問題なし
PostgreSQL 問題なし
Oracle 問題なし
MS-SQL 問題なし
Sybase Sybase は、複数行にわたる SQL 文を利用する場合、stripComments を true に設定する必要があるでしょう
DB2 問題なし
HSQL 問題なし
Derby 問題なし
H2 問題なし
Caché 問題なし
Firebird 問題なし
MaxDB 問題なし
SQLite 問題なし

自動ロールバック対応: いいえ