“sql” タグを利用することで、どんな SQL でも書くことができます。LiquiBase の自動化されたリファクタリングでは対応していない複雑な変更を記述したり、LiquiBase の不具合や制限事項を回避するのに役立ちます。sql タグに含まれる SQL は複数の行に渡ることも可能です。
ストアドプロシージャの作成 リファクタリングは、ストアドプロシージャを作成するのにもっともよい方法です。
“sql” タグは、同一ファイルに複数行にわたる SQL 文を記述できます。SQL文は、; を SQL 文の最後に書いたり、SQL 文の間に go を書くことで分割できます。複数行にわたる SQL 文は、; または go にのみ対応しており、改行するだけでは十分でありません。ファイルにひとつの SQL 文しかない場合は、; も go も必要ありません。
SQL は下記のようなフォーマットでコメントを含むことが可能です:
注意: デフォルトでは、行末の ”;” または “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 | 問題なし |
自動ロールバック対応: いいえ