2012-06-14 10 views
9

Ho una tabella mysql esistente con due colonne a e b.Quando si crea una colonna usando liquibase, come posso specificare un valore per quella colonna in base a una colonna esistente?

Ora voglio aggiungere una colonna c a quella tabella.

c deve essere annullabile, dovrebbe avere un valore predefinito di NULL, salvo quelle righe dove la colonna b ha il valore 10. Se b ha il valore 10, c dovrebbe avere un valore X.

intendo che è abbastanza semplice farlo usando SQL, ma io voglio farlo usando liquibase, poiché liquibase è quello che usiamo per le nostre migrazioni di schema.

+3

È necessario utilizzare un tag '' in Liquibase. –

+1

Grazie, @a_horse_with_no_name; ha funzionato abbastanza bene! – Aml

risposta

10

Hai già provato qualcosa di simile?

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

Questo è corretto. Riferimento: http://www.liquibase.org/documentation/column.html –

4

Penso che la soluzione migliore senza utilizzare SQL pianura è la seguente:

Si può scegliere di utilizzare entrambe le modifiche all'interno di una di modifiche, ma una buona pratica è quello di separare ciascuno da un insieme di modifiche separate per scopi di transazione/rollback liquibase.

Problemi correlati