我创建了一个名为 person 的表,并使用 liquibase 变更集添加了“phone_number”列。但现在我想为其添加一个默认值。但它不起作用,到目前为止我已经尝试过:
<addDefaultValue columnName="phone_number"
defaultValue="+923331234567"
tableName="person"/>
和
<changeSet author="haseeb" id="20160413123500">
<update tableName="person">
<column name="phone_number" type="varchar(255)" defaultValue="+923331234567"/>
</update>
</changeSet>
和
<changeSet author="haseeb" id="20160413123501">
<update tableName="person">
<column name="phone_number" type="varchar(255)" value="+923331234567"/>
</update>
任何人都可以指出我哪里做错了,并且添加默认值将为之前添加的行添加值吗?
试试这个
<addDefaultValue columnName="phone_number"
defaultValue="+923331234567"
tableName="person" columnDataType="varchar(255)"/>
试试这个:
<changeSet author="haseeb" id="20160413123501">
<modifyDataType
columnName="phone_number"
newDataType="varchar(255)"
defaultValue="+923331234567"
tableName="person"/>
<comment>Change default value</comment>
</changeSet>
这适用于表达式:
- addDefaultValue:
tableName: RT_STAGE
columnName: CREATED_DATE
defaultValueComputed: now()
这对于布尔值:
- addDefaultValue:
tableName: RT_STAGE
columnName: FINAL
defaultValueBoolean: false
用于在 liquibase 中创建表的 YAML 脚本,默认值为字符串/varchar、整数和时间戳 -
databaseChangeLog:
- changeSet:
id: liq_003
author: Pravind
changes:
- sql:
dbms: postgresql
sql: DROP TABLE IF EXISTS test.fx_users CASCADE
- createTable:
tableName: fx_users
remarks: "System authentication table"
schemaName: test
columns:
- column:
name: username
type: varchar(50)
remarks: "user name, will be used for authentication"
constraints:
nullable: false
unique: true
- column:
name: password
type: varchar(50)
remarks: "user password"
constraints:
nullable: false
- column:
name: email
type: varchar(50)
remarks: "User Email Id"
constraints:
nullable: false
- column:
name: version
type: int
defaultValue: "0"
remarks: "entity current version"
constraints:
nullable: true
- column:
name: created_on
type: timestamp
remarks: "Entity created time"
defaultValueComputed: "now()"
constraints:
nullable: true
- column:
name: created_by
type: varchar(50)
remarks: "Name of the user who created this entity"
defaultValue: "system"
constraints:
nullable: true
聚会可能会迟到,但要添加默认值。
使用通用的 addDefaultValue 更改类型,或特定的 defaultValue defaultValueNumeric defaultValueBoolean 或 defaultValueDate 更改 类型
使用如下所示的addDefaultValue标签
<changeSet author="wesome" id="1692599548266-2">
<addDefaultValue catalogName="appledb" columnDataType="BIGINT" columnName="apple_id" defaultValue="1" schemaName="appledb" tableName="apple" />
</changeSet>
下面是为不同数据类型创建表
<createTable catalogName="appledb" tableName="apple">
<!-- integer type -->
<column name="apple_id" type="BIGINT" />
<!-- varchar type -->
<column name="apple_name" type="varchar(20)" />
<!-- boolean type -->
<column name="available" type="boolean" />
<!-- float type -->
<column name="price" type="float" />
<!-- date time type -->
<column name="current_date_time" type="datetime" valueDate="now()" />
</createTable>
<!-- add default value changeset with generic defaultValue tag -->
</changeSet>
<changeSet author="wesome" id="1692599548266-2">
<addDefaultValue catalogName="appledb" columnDataType="BIGINT" columnName="apple_id" defaultValue="1" schemaName="appledb" tableName="apple" />
</changeSet>
<!-- add default value changeset with defaultValueNumeric tag -->
<changeSet author="wesome" id="1692599548266-3">
<addDefaultValue catalogName="appledb" columnDataType="float" columnName="price" defaultValueNumeric="10.10" schemaName="appledb" tableName="apple" />
</changeSet>
<!-- add default value changeset with generic defaultValue tag -->
<changeSet author="wesome" id="1692599548266-4">
<addDefaultValue catalogName="appledb" columnDataType="varchar(20)" columnName="apple_name" defaultValue="Fuji" schemaName="appledb" tableName="apple" />
</changeSet>
<!-- add default value changeset with defaultValueBoolean tag -->
<changeSet author="wesome" id="1692599548266-5">
<addDefaultValue catalogName="appledb" columnDataType="boolean" columnName="available" defaultValueBoolean="true" schemaName="appledb" tableName="apple" />
</changeSet>
<!-- add default value changeset with defaultValueComputed tag -->
<changeSet author="wesome" id="1692599548266-6">
<addDefaultValue catalogName="appledb" columnDataType="datetime" columnName="current_date_time" defaultValueComputed="now()" schemaName="appledb" tableName="apple" />
</changeSet>
希望它有帮助,所有工作示例都来自此链接