dropPrimaryKey

The dropPrimaryKey Change Type drops an existing primary key in the table.

Uses

You can typically use the dropPrimaryKey Change Type when you want to remove a field that uniquely defines a record in your database. It can include tableName and other attributes listed in this documentation.

Running the dropPrimaryKey Change Type

To drop an existing primary key, follow these steps:

  1. Add the dropPrimaryKey Change Type to your changeset with the needed attributes as it is shown in the examples.
  2. Deploy your changeset by running the update command:
  3. liquibase update

Now, you should see that the information indicating your primary key is removed from the table.

Available attributes

Name Description Required for Supports Since
catalogName

Name of the catalog

all
constraintName Name of the constraint (primary key) to drop firebird, informix, sybase all
dropIndex

Boolean: whether to drop the index associated with the primary key.

all
schemaName

Name of the schema

all
tableName Name of the table from which you drop the primary key. all all

Examples

<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="dropPrimaryKey-example">
        <dropPrimaryKey constraintName="const_name"
            dropIndex="true"
            schemaName="public"
            tableName="person"/>
    </changeSet>

</databaseChangeLog>
databaseChangeLog:
-  changeSet:
    id: dropPrimaryKey-example
    author: liquibase-docs
    changes:
    -  dropPrimaryKey:
        constraintName: const_name
        dropIndex: true
        schemaName: public
        tableName: person
{
    "databaseChangeLog": [
        {
            "databaseChangeLog": [
                {
                    "changeSet": {
                        "id": "dropPrimaryKey-example",
                        "author": "liquibase-docs",
                        "changes": [
                            {
                                "dropPrimaryKey": {
                                    "constraintName": "const_name",
                                    "dropIndex": true,
                                    "schemaName": "public",
                                    "tableName": "person"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    ]
}
--liquibase formatted sql

--changeset liquibase-docs:dropPrimaryKey-example
ALTER  TABLE  department.person  DROP  PRIMARY  KEY;

Database support

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