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: ‘addColumn’

Adds a new column to an existing table

Available Attributes

NameDescription
catalogNameName of the catalog@ v3.0E.g. 'cat'
schemaNameName of the schemaE.g. 'public'
tableNameName of the table to add the column toE.g. 'person'

Nested Properties

NameDescription
columns / column [1..N]Column constraint and foreign key information. Setting the "defaultValue" attribute will specify a default value for the column. Setting the "value" attribute will set all rows existing to the specified value without modifying the column default.Note: columns tag not required in XML

See the column tag documentation for more information
<changeSet author="liquibase-docs" id="addColumn-example">
    <addColumn catalogName="cat"
            schemaName="public"
            tableName="person">
        <column name="address"
                position="2"
                type="varchar(255)"/>
        <column afterColumn="id"
                name="name"
                type="varchar(50)">
            <constraints nullable="false"/>
        </column>
    </addColumn>
</changeSet>
changeSet:
  id: addColumn-example
  author: liquibase-docs
  changes:
  - addColumn:
      catalogName: cat
      columns:
      - column:
          name: address
          position: 2
          type: varchar(255)
      - column:
          afterColumn: id
          constraints:
            nullable: false
          name: name
          type: varchar(50)
      schemaName: public
      tableName: person
{
  "changeSet": {
    "id": "addColumn-example",
    "author": "liquibase-docs",
    "changes": [
      {
        "addColumn": {
          "catalogName": "cat",
          "columns": [
            {
              "column": {
                "name": "address",
                "position": 2,
                "type": "varchar(255)"
              }
            },
            {
              "column": {
                "afterColumn": "id",
                "constraints": {
                  "nullable": false
                },
                "name": "name",
                "type": "varchar(50)"
              }
            }]
          ,
          "schemaName": "public",
          "tableName": "person"
        }
      }]
    
  }
}

SQL Generated From Above Sample (MySQL)

ALTER TABLE cat.person ADD address VARCHAR(255) NULL,
 ADD name VARCHAR(50) NOT NULL AFTER `id`;

Database Support

DatabaseNotesAuto Rollback
DB2/LUWSupportedYes
DB2/zSupportedYes
DerbySupportedYes
FirebirdSupportedYes
H2SupportedYes
HyperSQLSupportedYes
INGRESSupportedYes
InformixSupportedYes
MariaDBSupportedYes
MySQLSupportedYes
OracleSupportedYes
PostgreSQLSupportedYes
SQL ServerSupportedYes
SQLiteSupportedYes
SybaseSupportedYes
Sybase AnywhereSupportedYes