How to Rename a Column in MySQL

Last updated July 24, 2026 · By the SaturnSQL team

On MySQL 8.0+ use ALTER TABLE ... RENAME COLUMN, which keeps the type. On 5.7 you must use CHANGE and restate the full column definition.

MySQL 8.0+

RENAME COLUMN is metadata only, so it is instant regardless of table size, and it preserves the type, default, and any indexes on the column. Views, triggers, and stored procedures referencing the old name are not updated and will break when next executed, so search for the old name before running this.

ALTER TABLE orders RENAME COLUMN amount TO order_amount;

MySQL 5.7 and older

CHANGE requires you to restate the entire column definition, and anything you leave out is dropped. Omit NOT NULL and the column becomes nullable; omit the DEFAULT and it is gone. Copy the exact definition out of SHOW CREATE TABLE orders rather than typing it from memory.

ALTER TABLE orders CHANGE amount order_amount DECIMAL(10,2) NOT NULL;

Run this in SaturnSQL

SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.

Try it free

Related MySQL guides