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 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

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 except bigquery
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

--liquibase formatted sql

--changeset liquibase-docs:dropPrimaryKey-example
ALTER  TABLE  department.person  DROP  PRIMARY  KEY;
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"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    ]
}
<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>

Database support

Database Notes Auto Rollback
DB2/LUW Supported No
DB2/z Supported No
Derby Supported No
Firebird Supported No
Google BigQuery 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