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