Liquibase 添加默认值

问题描述 投票:0回答:5

我创建了一个名为 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>

任何人都可以指出我哪里做错了,并且添加默认值将为之前添加的行添加值吗?

mysql default-value liquibase changeset
5个回答
6
投票

试试这个

<addDefaultValue columnName="phone_number"
             defaultValue="+923331234567"
             tableName="person" columnDataType="varchar(255)"/>

2
投票

试试这个:

<changeSet author="haseeb" id="20160413123501">
    <modifyDataType
        columnName="phone_number"
        newDataType="varchar(255)"
        defaultValue="+923331234567"
        tableName="person"/>
    <comment>Change default value</comment>
</changeSet>

0
投票

这适用于表达式

- addDefaultValue:
    tableName: RT_STAGE
    columnName: CREATED_DATE
    defaultValueComputed: now()

这对于布尔值

- addDefaultValue:
    tableName: RT_STAGE
    columnName: FINAL
    defaultValueBoolean: false

0
投票

用于在 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

-1
投票

聚会可能会迟到,但要添加默认值。

使用通用的 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>

希望它有帮助,所有工作示例都来自此链接

© www.soinside.com 2019 - 2024. All rights reserved.