web-dev-qa-db-ja.com

リキベースを使用して列を作成する場合、既存の列に基づいてその列の値を指定するにはどうすればよいですか?

2つの列aとbを持つ既存のmysqlテーブルがあります。

次に、そのテーブルに列cを追加します。

cはnull可能である必要があり、列bの値が10である行を除き、デフォルト値はNULLでなければなりません。bの値が10である場合、cの値はXでなければなりません。

SQLを使用してこれを行うのはかなり簡単であることを理解していますが、liquibaseはスキーマの移行に使用するものなので、liquibaseを使用してこれを実行したいと思います。

16
Aml

あなたはすでにこのようなことを試しましたか?

<addColumn tableName="SGW_PRODOTTI_INFO_ATTRIBUTE">
    <column name="AlternativeListPrice" type="double" defaultValue="0.0">
    <constraints nullable="true"/>
    </column>
</addColumn>
25

プレーンSQLを使用しない最善の解決策は次のとおりです。

  • Walterが書いたように addColumn changeを使用します。

  • pdate changeを使用します。

チェンジセット内で両方の変更を使用することを選択できますが、リキベーストランザクション/ロールバックの目的で、それぞれを別々のチェンジセットで分離することをお勧めします。

5
rodrigocprates