2017-02-13 9 views
0

Liquibaseの変更履歴を使用して既存のテーブルに列を追加し、nullable制約をtrueに設定しました。Liquibaseは、既存のnullable制約をtrueからfalseに変更します。

コード:

<changeSet id="10" author="000000"> 
    <addColumn tableName="NCV_ATTRIBUTE"> 
     <column name="AlternativeListPrice" type="double" defaultValue="0.0"> 
     <constraints nullable="true"/> 
     </column> 
    </addColumn> 
</changeSet> 

私はこれを達成する最も簡単な方法は何ですかチェンジ11でtrueからfalseにNULL可能制約を変更したいですか?

ありがとうございました。

+0

を見つけることができ、それが持っていると、Javaの質問としてこれをタグ付けしないでくださいJavaとはまったく関係ありません。 –

答えて

1

私はここで使う正確な方法を見つけました。

<changeSet id="11" author="000000"> 
    <dropNotNullConstraint tableName="NCV_ATTRIBUTE" columnName="AlternativeListPrice"/> 
</changeSet> 

キーワードは "dropNotNullConstraint" である:ここでは

は、変更履歴を使用してNULL可能な制約を削除する方法です。

この例では、このキーワードに続けてテーブル名とカラム名を使用すると、以前に設定したnull許容制約を削除でき、null値はfalseに変更されます。

0

唯一の制約は、(Oracleで)存在を確認した後、チェンジセットを実行するには - 様々なデータベースのための

<changeSet id="111" author="ME"> 
    <preConditions onFail="MARK_RAN" onError="CONTINUE"> 
    <sqlCheck expectedResult="N"> 
     SELECT Nullable 
     FROM user_tab_columns 
     WHERE table_name = 'table_name' 
     AND column_name = 'column_name' 
    </sqlCheck> 
    </preConditions> 
    <dropNotNullConstraint tableName="BULK_REQUEST" columnName="REMARKS"/> 
</changeSet> 

前提条件がhere

関連する問題