2012-06-14 29 views
9

我有一个现有的mysql表,有两列a和b。使用liquibase创建列时,如何根据现有列为该列指定值?

我现在想要为该表添加一列c。

C应该可为空的,应具有NULL的默认值,除了在塔B的值为10。当b的值是10的那些行,C应该有一个值X.

我明白使用SQL来做这件事非常简单,但我想用liquibase来做到这一点,因为liquibase就是我们用于模式迁移的东西。

+3

您需要在Liquibase中使用''标签。 –

+1

谢谢@a_horse_with_no_name;那很好用! – Aml

回答

10

你已经尝试过这样的事情吗?

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

这是正确的。参考:http://www.liquibase.org/documentation/column.html –

4

我认为不使用纯SQL最好的解决方案是以下几点:

您可以选择使用变更中都变化,但一个好的做法是由liquibase交易/回滚目的的分离变更到每一个分开。

相关问题