ALTER TABLE
Complete ALTER TABLE guide for MariaDB. Complete syntax for modifying columns, indexes, constraints, and table properties with comprehensive examples and.
Syntax
ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS] tbl_name
[WAIT n | NOWAIT]
alter_specification [, alter_specification] ...
alter_specification:
table_option ...
| ADD [COLUMN] [IF NOT EXISTS] col_name column_definition
[FIRST | AFTER col_name ]
| ADD [COLUMN] [IF NOT EXISTS] (col_name column_definition, ...)
| ADD {INDEX|KEY} [IF NOT EXISTS] [index_name]
[index_type] (index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]] PRIMARY KEY [IF NOT EXISTS]
[index_type] (index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]]
UNIQUE [INDEX|KEY] [IF NOT EXISTS] [index_name]
[index_type] (index_col_name,...) [index_option] ...
| ADD FULLTEXT [INDEX|KEY] [IF NOT EXISTS [index_name]
(index_col_name,...) [index_option] ...
| ADD SPATIAL [INDEX|KEY] [IF NOT EXISTS [index_name]
(index_col_name,...) [index_option] ...
| ADD VECTOR [INDEX|KEY] [IF NOT EXISTS [index_name]
(index_col_name,...) [index_option] ...
| ADD [CONSTRAINT [symbol]]
FOREIGN KEY [IF NOT EXISTS] [index_name] (index_col_name,...)
reference_definition
| ADD PERIOD FOR [time_period_name|SYSTEM_TIME] (start_column_name, end_column_name)
| ALTER [COLUMN] col_name SET DEFAULT literal | (expression)
| ALTER [COLUMN] col_name DROP DEFAULT
| ALTER {INDEX|KEY} [IF EXISTS] index_name [NOT] IGNORED
| CHANGE [COLUMN] [IF EXISTS] old_col_name new_col_name column_definition
[FIRST|AFTER col_name]
| MODIFY [COLUMN] [IF EXISTS] col_name column_definition
[FIRST | AFTER col_name]
| DROP [COLUMN] [IF EXISTS] col_name [RESTRICT|CASCADE]
| DROP [CONSTRAINT] PRIMARY KEY
| DROP {INDEX|KEY} [IF EXISTS] index_name
| DROP FOREIGN KEY [IF EXISTS] fk_symbol
| DROP CONSTRAINT [IF EXISTS] constraint_name
| DISABLE KEYS
| ENABLE KEYS
| RENAME [TO] new_tbl_name
| ORDER BY col_name [, col_name] ...
| RENAME COLUMN [IF EXISTS] old_col_name TO new_col_name
| RENAME {INDEX|KEY} old_index_name TO new_index_name
| CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
| [DEFAULT] CHARACTER SET [=] charset_name
| [DEFAULT] COLLATE [=] collation_name
| DISCARD TABLESPACE
| IMPORT TABLESPACE
| ALGORITHM [=] {DEFAULT|INPLACE|COPY|NOCOPY|INSTANT}
| LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
| FORCE
| partition_options
| CONVERT TABLE normal_table TO partition_definition [{WITH | WITHOUT} VALIDATION]
| CONVERT PARTITION partition_name TO TABLE tbl_name
| ADD PARTITION [IF NOT EXISTS] (partition_definition)
| DROP PARTITION [IF EXISTS] partition_names
| TRUNCATE PARTITION partition_names
| COALESCE PARTITION number
| REORGANIZE PARTITION [partition_names INTO (partition_definitions)]
| ANALYZE PARTITION partition_names
| CHECK PARTITION partition_names
| OPTIMIZE PARTITION partition_names
| REBUILD PARTITION partition_names
| REPAIR PARTITION partition_names
| EXCHANGE PARTITION partition_name WITH TABLE tbl_name [{WITH | WITHOUT} VALIDATION]
| REMOVE PARTITIONING
| ADD SYSTEM VERSIONING
| DROP SYSTEM VERSIONING
index_col_name:
col_name [(length)] [ASC | DESC]
index_type:
USING {BTREE | HASH | RTREE}
index_option:
KEY_BLOCK_SIZE [=] value
| index_type
| WITH PARSER parser_name
| VISIBLE
| COMMENT 'string'
| CLUSTERING={YES | NO}
| { IGNORED | NOT IGNORED }
| DISTANCE={EUCLIDEAN | COSINE}
| M=number
table_option [[,] table_option] ...
Description
Privileges
Online DDL
ALTER ONLINE TABLE
WAIT/NOWAIT
IF EXISTS
Column Definitions
Index Definitions
Character Sets and Collations
Alter Specifications
Table Options
ADD COLUMN
DROP COLUMN
MODIFY COLUMN
CHANGE COLUMN
ALTER COLUMN
RENAME INDEX/KEY
RENAME COLUMN
ADD PRIMARY KEY
DROP PRIMARY KEY
ADD FOREIGN KEY
DROP FOREIGN KEY
ADD INDEX
DROP INDEX
ADD UNIQUE INDEX
DROP UNIQUE INDEX
ADD FULLTEXT INDEX
DROP FULLTEXT INDEX
ADD SPATIAL INDEX
DROP SPATIAL INDEX
ENABLE/ DISABLE KEYS
RENAME TO
ADD CONSTRAINT
DROP CONSTRAINT
ADD SYSTEM VERSIONING
DROP SYSTEM VERSIONING
ADD PERIOD FOR
FORCE
Partitions
ADD PARTITION
ANALYZE PARTITION
CHECK PARTITION
COALESCE PARTITION
CONVERT PARTITION / TABLE
DROP PARTITION
EXCHANGE PARTITION
OPTIMIZE PARTITION
REMOVE PARTITIONING
REORGANIZE PARTITION
TRUNCATE PARTITION
DISCARD TABLESPACE
IMPORT TABLESPACE
ALGORITHM
ALGORITHM=DEFAULT
ALGORITHM=COPY
ALGORITHM=INPLACE
ALGORITHM=NOCOPY
ALGORITHM=INSTANT
LOCK
DEFAULT
NONE
SHARED
EXCLUSIVE
Index Options
Progress Reporting
Aborting ALTER TABLE Operations
Atomic ALTER TABLE
Replication
Examples
See Also
Last updated
Was this helpful?

