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 run this Change Type, follow these steps:

  1. Add the Change Type to your changeset, as shown in the examples on this page.
  2. Specify any required attributes. Use the table on this page to see which ones your database requires.
  3. Deploy your changeset by running the update command:
  4. 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

--liquibase formatted sql

--changeset liquibase-docs:update-example
UPDATE  liquibase.person  SET  address  =  'address value'  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'
{
    "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
    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>

Database support

Database Notes Auto Rollback
DB2/LUW Supported No
DB2/z Supported No
Derby Supported No
Firebird Supported No
Google BigQuery 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