Adds a unique constraint to an existing column or set of columns.

Available attributes

Name Description Required for Supports
catalogName Name of the catalog all
clustered Whether create a clustered index mssql
columnNames Name of the column(s) to create the unique constraint on. Comma separated if multiple all all
constraintName Name of the unique constraint all
deferrable True if this constraint is deferrable, False otherwise all
disabled True if this constraint is disabled, False otherwise all
forIndexCatalogName all
forIndexName oracle
forIndexSchemaName all
initiallyDeferred True if this constraint is initially deferred, False otherwise all
schemaName Name of the schema all
tableName Name of the table to create the unique constraint on all all
tablespace 'Tablespace' to create the index in. Corresponds to file group in mssql all
validate Should be true if the unique constraint shall 'ENABLE VALIDATE' set, or false if the 'ENABLE NOVALIDATE' shall. all

XML example

<changeSet  author="liquibase-docs"  id="addUniqueConstraint-example">  
    <addUniqueConstraint  catalogName="cat"  
            columnNames="id, name"  
            forIndexName="A String"  
            tablespace="A String"  

YAML example

  id:  addUniqueConstraint-example  
  author:  liquibase-docs  
  -  addUniqueConstraint:  
      catalogName:  cat  
      clustered:  true  
      columnNames:  id, name  
      constraintName:  const_name  
      deferrable:  true  
      disabled:  true  
      forIndexName:  A String  
      initiallyDeferred:  true  
      schemaName:  public  
      tableName:  person  
      tablespace:  A String  
      validate:  true

JSON example

{  "changeSet":  {  "id":  "addUniqueConstraint-example",  "author":  "liquibase-docs",  "changes":  [  {  "addUniqueConstraint":  {  "catalogName":  "cat",  "clustered":  true,  "columnNames":  "id, name",  "constraintName":  "const_name",  "deferrable":  true,  "disabled":  true,  "forIndexName":  "A String",  "initiallyDeferred":  true,  "schemaName":  "public",  "tableName":  "person",  "tablespace":  "A String",  "validate":  true  }  }]  }  }

SQL example

ALTER  TABLE  cat.person  ADD  CONSTRAINT  const_name  UNIQUE  CLUSTERED  (id,  
 name)  USING  INDEX  `A String`;

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 Not Supported Yes
Sybase Supported Yes
Sybase Anywhere Supported Yes