On this page Carat arrow pointing down
As of May 16, 2023, CockroachDB v21.2 is no longer supported. For more details, refer to the Release Support Policy.

The ALTER TABLE statement applies a schema change to a table. For information on using ALTER TABLE, see the pages for its relevant subcommands.


The ALTER TABLE statement performs a schema change. For more information about how online schema changes work in CockroachDB, see Online Schema Changes.



Some subcommands can be used in combination in a single ALTER TABLE statement. For example, you can atomically rename a column and add a new column with the old name of the existing column.

Subcommand Description Can combine with other subcommands?
ADD COLUMN Add columns to tables. Yes
ADD CONSTRAINT Add constraints to columns. Yes
ALTER COLUMN Change an existing column. Yes
ALTER PRIMARY KEY Change the primary key of a table. Yes
DROP COLUMN Remove columns from tables. Yes
DROP CONSTRAINT Remove constraints from columns. Yes
EXPERIMENTAL_AUDIT Enable per-table audit logs, for security purposes. Yes
OWNER TO Change the owner of the table.
PARTITION BY Partition, re-partition, or un-partition a table (Enterprise-only). Yes
RENAME COLUMN Change the names of columns. Yes
RENAME CONSTRAINT Change constraints columns. Yes
RENAME TO Change the names of tables. No
SET SCHEMA Change the schema of a table. No
SPLIT AT Force a range split at the specified row in the table. No
UNSPLIT AT Remove a range split enforcement at a specified row in the table. No
VALIDATE CONSTRAINT Check whether values in a column match a constraint on the column. Yes
SET LOCALITY {REGIONAL BY TABLE, REGIONAL BY ROW, GLOBAL} Set the table locality for a table in a multi-region database. No

Viewing schema changes

This schema change statement is registered as a job. You can view long-running jobs with SHOW JOBS.

Yes No
On this page

Yes No