Modify an existing table’s structure.

Modifies a column definition: changing type, setting/dropping defaults, altering nullability. Can be fast (metadata-only) or require a full table rewrite depending on the change. Test on a production-size clone before running against live data.

Compatibility

Filter by Database
SQL ALTER TABLE Compatibility Across Databases
Database System Support Status Since Version Notes
MySQL Native all Multiple ALTER per stmt
PostgreSQL Native all Standard
SQL Server Native all Standard
Oracle Native all Standard
SQLite Native all Limited: only ADD

Details

DDL for evolving schemas.

Standard Syntax

ALTER TABLE table_name ADD COLUMN new_col VARCHAR(50);

Version Support

MySQL: Native in all listed versions PostgreSQL: Native in all listed versions SQL Server: Native in all listed versions Oracle: Native in all listed versions SQLite: Native in all listed versions

Per-Database Syntax & Notes

MySQL Native syntax

Multiple ALTER per stmt

ALTER TABLE tbl ADD COLUMN nick VARCHAR(50), DROP COLUMN old_col;

PostgreSQL Native syntax

Standard

ALTER TABLE tbl ADD COLUMN nick TEXT; ALTER TABLE tbl DROP COLUMN old_col;

SQL Server Native syntax

Standard

ALTER TABLE tbl ADD nick NVARCHAR(50); ALTER TABLE tbl DROP COLUMN old_col;

Oracle Native syntax

Standard

ALTER TABLE tbl ADD nick VARCHAR2(50); ALTER TABLE tbl DROP COLUMN old_col;

SQLite Native syntax

Limited: only ADD

ALTER TABLE tbl ADD COLUMN nick TEXT;