我正在使用 liquibase。我有一个用户表,其中一列定义如下:
<column name="referralClicks" type="int"/>
当我第一次在数据库中保存我的用户时。 referralClicks 为空。但我想设置一个默认值 (0),我尝试了以下配置:
<addDefaultValue
columnDataType="int"
columnName="referralClicks"
defaultValueNumeric="0"
tableName="USER"/>
</changeSet>
我使用 MySQL 数据库。在结构中,我可以看到默认值设置为 0。
但是当我有数据时,referralClicks 为空:
在代码中,如果未设置,我也会检索空值。
Integer referralClicks = user.getReferralClicks();
我错过了什么?
最佳答案
您可以 <update>
您使用这样的现有数据:
<update tableName="USER">
<column name="referralClicks" valueNumeric="0"/>
<where>referralClicks IS NULL</where>
</update>
或如原始 <sql>
所述:
<sql>
UPDATE USER SET referralClicks = 0 WHERE referralClicks IS NULL
</sql>
关于java - 如何使用 liquibase 在列数据库上将默认值设置为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30510796/