2017-02-13 1 views
0

Ich habe eine Spalte zu einer vorhandenen Tabelle hinzugefügt, die Liquibase Changelog verwendet, und ich habe die Nullwert-Einschränkung auf "True" gesetzt.Liquibase ändert vorhandene Nullwert-Integritätsbedingung von "Wahr" in "Falsch"

Code:

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

Ich möchte 11. die Nullable-Einschränkung von true in false in ChangeSet ändern Was ist der einfachste Weg, dies zu erreichen?

Danke.

+0

Bitte markieren Sie das nicht als Java-Frage gefunden werden konnte, wenn es hat absolut nichts mit Java zu tun. –

Antwort

1

Ich fand die genaue Methode hier zu verwenden.

Hier ist, wie die Nullable-Einschränkung entfernen Changelog mit:

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

Das Schlüsselwort ist "dropNotNullConstraint".

In diesem Beispiel können Sie, wenn Sie dieses Schlüsselwort gefolgt vom Tabellennamen und dem Spaltennamen verwenden, die zuvor festgelegte Nullable-Einschränkung entfernen, und der Nullable-Wert wird in false geändert.

0

Um die changeset erst nach machen, dass die Einschränkung vorhanden ist (in Oracle) laufen -

<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> 

Voraussetzungen für die verschiedenen Datenbanken here

Verwandte Themen