Liquibase® version 3.8.5 is now available! Get it for free.
2018 XML Announcement
News All Previous Posts >>

Subscribe for email updates

- and/or -

Change: ‘mergeColumns’

Concatenates the values in two columns, joins them by with string, and stores the resulting value in a new column.

Available Attributes

NameDescription
catalogNameName of the catalogE.g. 'cat'
column1NameName of the column containing the first half of the dataE.g. 'first_name'
column2NameName of the column containing the second half of the dataE.g. 'last_name'
finalColumnNameName of the column to createE.g. 'full_name'
finalColumnTypeData type of the column to createE.g. 'varchar(255)'
joinStringString to place include between the values from column1 and column2 (may be empty)E.g. 'A String'
schemaNameName of the schemaE.g. 'public'
tableNameName of the table containing the columns to joinE.g. 'person'
<changeSet author="liquibase-docs" id="mergeColumns-example">
    <mergeColumns catalogName="cat"
            column1Name="first_name"
            column2Name="last_name"
            finalColumnName="full_name"
            finalColumnType="varchar(255)"
            joinString="A String"
            schemaName="public"
            tableName="person"/>
</changeSet>
changeSet:
  id: mergeColumns-example
  author: liquibase-docs
  changes:
  - mergeColumns:
      catalogName: cat
      column1Name: first_name
      column2Name: last_name
      finalColumnName: full_name
      finalColumnType: varchar(255)
      joinString: A String
      schemaName: public
      tableName: person
{
  "changeSet": {
    "id": "mergeColumns-example",
    "author": "liquibase-docs",
    "changes": [
      {
        "mergeColumns": {
          "catalogName": "cat",
          "column1Name": "first_name",
          "column2Name": "last_name",
          "finalColumnName": "full_name",
          "finalColumnType": "varchar(255)",
          "joinString": "A String",
          "schemaName": "public",
          "tableName": "person"
        }
      }]
    
  }
}

SQL Generated From Above Sample (MySQL)

ALTER TABLE public.person ADD full_name VARCHAR(255) NULL;

UPDATE cat.person SET full_name = CONCAT_WS(first_name,
 'A String',
 last_name);

ALTER TABLE public.person DROP COLUMN first_name;

ALTER TABLE public.person DROP COLUMN last_name;

Database Support

DatabaseNotesAuto Rollback
DB2/LUWSupportedNo
DB2/zNot SupportedNo
DerbyNot SupportedNo
FirebirdSupportedNo
H2SupportedNo
HyperSQLSupportedNo
INGRESSupportedNo
InformixSupportedNo
MariaDBSupportedNo
MySQLSupportedNo
OracleSupportedNo
PostgreSQLSupportedNo
SQL ServerSupportedNo
SQLiteSupportedNo
SybaseSupportedNo
Sybase AnywhereSupportedNo