Rename a column in MySQL

Michael Peter picture Michael Peter · May 17, 2015 · Viewed 414.2k times · Source

I am trying to rename a column in MySQL community server 5.5.27 using this SQL expression:

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

I also tried

ALTER TABLE table_name RENAME old_col_name TO new_col_name;

But it says:

Error: check the Manual that corresponds to your MySQL server version

Answer

Rizky Fakkel picture Rizky Fakkel · May 17, 2015

Use the following query:

ALTER TABLE tableName CHANGE `oldcolname` `newcolname` datatype(length);

The RENAME function is used in Oracle databases.

ALTER TABLE tableName RENAME COLUMN "oldcolname" TO "newcolname" datatype(length);

Notice the backticks used for MySQL, whereas double quotes are used for Oracle's syntax. Also note that MySQL 8.0 might not accept backticks. In that case, execute the query without backticks and it will probably work.


@lad2025 mentions it below, but I thought it'd be nice to add what he said. Thank you @lad2025!

You can use the RENAME COLUMN in MySQL 8.0 to rename any column you need renamed.

ALTER TABLE table_name RENAME COLUMN old_col_name TO new_col_name;

ALTER TABLE Syntax:

RENAME COLUMN:

  • Can change a column name but not its definition.

  • More convenient than CHANGE to rename a column without changing its definition.