addCheckConstraint

Note: This is a Liquibase Pro Change Type, so you need a Liquibase Pro License Key to use it.

Adds a check constraint to an existing column or set of columns in a table.

Run addCheckConstraint

To run this Change Type, follow these steps:

  1. Add the Change Type to your changeset, as shown in the examples on this page.
  2. Specify any required attributes. Use the table on this page to see which ones your database requires.
  3. Deploy your changeset by running the update command:
  4. liquibase update

Available attributes

Name Description Required for Supports Since
catalogName

Name of the catalog

all 3.0
constraintBody

The constraint SQL

all all
constraintName

Name of the constraint

all all
disabled

Boolean. Specifies whether the constraint is disabled.

all
schemaName

Name of the schema

all
tableName

Name of the table to create the check constraint on

all all
validate

Set to true if the constraint has ENABLE VALIDATE set, or false if the constraint has ENABLE NOVALIDATE set.

all

Examples

Note: If you are using MySQL or MariaDB, there is no equivalent for NOCHECK, which disables data verification for new constraints. As a workaround, you can temporarily disable foreign key checks with SET FOREIGN_KEY_CHECKS = 0;

--liquibase formatted sql

--changeset liquibase-docs:addCheckConstraint-example
ALTER  TABLE  your_table_name  ADD  CONSTRAINT  constraint_name  CHECK  (A  String);
ALTER  TABLE  your_table_name  CONSTRAINT  constraint_name;
MSSQL example
--liquibase formatted sql

--changeset liquibase-docs:addCheckConstraint-example
ALTER  TABLE  your_table_name  ADD  CONSTRAINT  constraint_name  CHECK  (A  String);
ALTER  TABLE  your_table_name  NOCHECK  CONSTRAINT  constraint_name;
Oracle Example
--liquibase formatted sql

--changeset liquibase-docs:addCheckConstraint-example
ALTER  TABLE  your_table_name  ADD  CONSTRAINT  constraint_name  CHECK  (A  String);
ALTER  TABLE  your_table_name  ENABLE NOVALIDATE  CONSTRAINT  constraint_name;
PostgreSQL Example
--liquibase formatted sql

--changeset liquibase-docs:addCheckConstraint-example
ALTER  TABLE  cat.[public].person  ADD  CONSTRAINT  const_name  CHECK  (A  String) NOT VALID;
ALTER  TABLE  cat.[public].person  CONSTRAINT  const_name;
databaseChangeLog:
-  changeSet:
    id:  addCheckConstraint-example
    author:  liquibase-docs
    changes:
    -  addCheckConstraint:
        catalogName:  cat
        constraintBody:  A String
        constraintName:  const_name
        disabled:  true
        schemaName:  public
        tableName:  person
        validate:  true
{
    "databaseChangeLog": [
        {
            "changeSet": {
                "id": "addCheckConstraint-example",
                "author": "liquibase-docs",
                "changes": [
                    {
                        "addCheckConstraint": {
                            "catalogName": "cat",
                            "constraintBody": "A String",
                            "constraintName": "const_name",
                            "disabled": true,
                            "schemaName": "public",
                            "tableName": "person",
                            "validate": true
                        }
                    }
                ]
            }
        }
    ]
}
<databaseChangeLog
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
    xmlns:pro="http://www.liquibase.org/xml/ns/pro"
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
        http://www.liquibase.org/xml/ns/dbchangelog-ext
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
        http://www.liquibase.org/xml/ns/pro
        http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">

    <changeSet  author="liquibase-docs"  id="addCheckConstraint-example">
        <pro:addCheckConstraint  catalogName="cat"
            constraintName="const_name"
            disabled="true"
            schemaName="public"
            tableName="person"
            validate="true">A String</pro:addCheckConstraint>
    </changeSet>

</databaseChangeLog>

Database support

Database Notes Auto Rollback
DB2/LUW Supported Yes
DB2/z Supported Yes
Derby Not Supported No
Firebird Not Supported No
Google BigQuery Supported Yes
H2 Not Supported No
HyperSQL Not Supported No
INGRES Not Supported No
Informix Not Supported No
MariaDB Not Supported No
MySQL 5.7 Not Supported No
MySQL 8.0 Supported Yes
Oracle Supported Yes
PostgreSQL Supported Yes
Snowflake Not Supported No
SQL Server Supported Yes
SQLite Not Supported No
Sybase Not Supported No
Sybase Anywhere Not Supported No