2012-06-14 25 views
9

Tengo una tabla mysql existente con dos columnas a y b.Al crear una columna usando liquibase, ¿cómo especifico un valor para esa columna basado en una columna existente?

Ahora quiero agregar una columna c a esa tabla.

c debe ser anulable, debe tener un valor predeterminado de NULL, excepto en aquellas filas donde la columna B tiene el valor 10. Cuando b tiene el valor 10, c debe tener un valor X.

entiendo que es bastante simple hacer esto usando SQL, pero quiero hacer esto usando liquibase, ya que liquibase es lo que usamos para nuestras migraciones de esquema.

+3

Deberá usar una etiqueta '' en Liquibase. –

+1

Gracias, @a_horse_with_no_name; eso funcionó bastante bien! – Aml

Respuesta

10

¿Has probado algo como esto?

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

Esto es correcto. Referencia: http://www.liquibase.org/documentation/column.html –

4

creo que la mejor solución sin utilizar SQL sin formato es el siguiente:

Usted puede optar por utilizar los dos cambios dentro de un conjunto de cambios, pero una buena práctica consiste en separar cada uno por separado un conjunto de cambios para fines de transacciones/rollback Liquibase.

Cuestiones relacionadas