update

The update Change Type updates the data in an existing table.

Uses

You can typically use the update Change Type when you want to update a table in your changelog file and then deploy this update to your database. It can include columns and another values listed in this documentation.

Running the update Change Type

To update a table for your database, follow these steps:

  1. Add the update Change Type to your changeset with the needed attributes as it is shown in the examples.
  2. Deploy your changeset by running the update command:
  3. liquibase update

Now, you should see an updated table.

Note: You can use the update Change Type in combination with loadData and loadUpdateData Change Types.

Available attributes

Name Description Required for Supports Since
catalogName

Name of the catalog

all 3.0
schemaName

Name of the schema

all
tableName

Name of the table

all all

Nested tags

Name Description Required for Supports Multiple allowed
column

The data to update.

Note: YAML and JSON changelogs using the column tag must nest it within a columns tag.

all all yes
where

Defines the WHERE condition string

all no
whereParams

Parameters for the WHERE condition. The parameters are inserted in the order they are defined in place of the :name and :value placeholders. See the generated SQL sample below.

all no

Nested property attributes

Name Name of the attribute
value A value of the attribute.

Note: If it is not set, then the first valueXXX defined is used in the order they appear.

valueNumeric The integer value of the attribute.
valueBoolean The boolean value of the attribute.
valueDate The date and/or time value to set the attribute. The value should be specified in one of the following forms: YYYY-MM-DD, hh:mm:ss, or YYYY-MM-DDThh:mm:ss.
valueComputed The value that is returned from a function or procedure call. Contains the function or column name to call. Differs from value by returning the value of the function or column you specify instead of the name of the function/column as a string. Can also perform operations on the returned value.
valueSequenceNext The name of the sequence in which the next value is used.
valueSequenceCurrent The name of the sequence in which the current value is used.

Examples

<databaseChangeLog
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
    xmlns:pro="http://www.liquibase.org/xml/ns/pro"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
        http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">

    <changeSet author="liquibase-docs" id="update-example">
        <update catalogName="liquibase" schemaName="public" tableName="person">
            <column name="address" value="address value"/>
            <where>name='Bob'</where>
        </update>
    </changeSet>

</databaseChangeLog>
databaseChangeLog:
-  changeSet:
    id:  update-example
    author:  liquibase-docs
    changes:
    -  update:
        catalogName:  liquibase
        columns:
        -  column:
            name:  address
            value:  address value
        schemaName:  public
        tableName:  person
        where:  name='Bob'
{
    "databaseChangeLog": [
        {
            "changeSet": {
                "id": "update-example",
                "author": "liquibase-docs",
                "changes": [
                    {
                        "update": {
                            "catalogName": "liquibase",
                            "columns": [
                                {
                                    "column": {
                                        "name": "address",
                                        "value": "address value"
                                    }
                                }
                            ],
                            "schemaName": "public",
                            "tableName": "person",
                            "where": "name='Bob'"
                        }
                    }
                ]
            }
        }
    ]
}
--liquibase formatted sql

--changeset liquibase-docs:update-example
UPDATE  liquibase.person  SET  address  =  'address value'  WHERE  name='Bob';

Database support

Database Notes Auto Rollback
DB2/LUW Supported No
DB2/z Supported No
Derby Supported No
Firebird Supported No
H2 Supported No
HyperSQL Supported No
INGRES Supported No
Informix Supported No
MariaDB Supported No
MySQL Supported No
Oracle Supported No
PostgreSQL Supported No
Snowflake Supported No
SQL Server Supported No
SQLite Supported No
Sybase Supported No
Sybase Anywhere Supported No