Adds a new column to an existing table.

Available attributes

Name Description Required for Supports
catalogName Name of the catalog all
schemaName Name of the schema all
tableName Name of the table to add the column to all all

Nested properties

Name Description Required for Supports Multiple allowed
columns 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.

See the Column tag documentation for more information.
all all yes

XML Example

<changeSet author="liquibase-docs" id="addColumn-example"> 
	<addColumn catalogName="cat"  
			schemaName= "public"
			tableName="person" >
		<column name="address" 
		<column afterColumn="id" 
			type="varchar(50)" >  
			<constraints nullable="false" />  

YAML Example

	id: addColumn-example
	author: liquibase-docs
		- addColumn:
			tableName: person
				- column:
					name: middlename
					type: varchar(50)

JSON Example

{  "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 Example

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

Database support

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