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:

Step 1: Add the update Change Type to your changeset with the needed attributes as it is shown in the examples.

Step 2: Deploy your changeset by running the update command.

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 The name of the catalog all 3.0
schemaName The name of the schema all
tableName The name of the table all all
where The name of the 'where' condition string all

Nested properties

Name Description Required for Supports Multiple allowed
columns The data to update.

all all yes
where The property that allows to define the 'where' condition string. all no
whereParams Parameters for the 'where' condition. The 'param'(s) 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 A value that is returned from a function or procedure call. This attribute should contain the function name to call.
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.

XML example

<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>

YAML example

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'

JSON example

{
   "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'"
              }
            }
          ]
        }
      }

SQL 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
SQL Server Supported No
SQLite Supported No
Sybase Supported No
Sybase Anywhere Supported No