Rename a column in MySQL

MysqlSql

Mysql Problem Overview


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

Mysql Solutions


Solution 1 - Mysql

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

@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.

Solution 2 - Mysql

In Server version: 5.6.34 MySQL Community Server

ALTER TABLE table_name
CHANGE COLUMN old_column_name new_column_name data_type;

Solution 3 - Mysql

From MySQL 5.7 Reference Manual.

Syntax :

> ALTER TABLE t1 CHANGE a b DATATYPE;

e.g. : for Customer TABLE having COLUMN customer_name, customer_street, customercity.

And we want to change customercity TO customer_city :

alter table customer change customercity customer_city VARCHAR(225);

Solution 4 - Mysql

From MySQL 8.0 you could use

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.

DBFiddle Demo

Solution 5 - Mysql

You can use following code:

ALTER TABLE `dbName`.`tableName` CHANGE COLUMN `old_columnName` `new_columnName` VARCHAR(45) NULL DEFAULT NULL ;

Solution 6 - Mysql

Changing name in MySQL we have to use "ALTER" table command followed by "CHANGE". Below is the query.

ALTER TABLE tablename CHANGE COLUMN oldcolname newcolname datatype;

ALTER TABLE tablename CHANGE oldcolname newcolname datatype;

PS- You can add "COLUMN" word or ignore in the query. It will work same.

"RENAME" is used in Oracle database.

Solution 7 - Mysql

ALTER TABLE `table_name` CHANGE `$old_column_name` `new_column_name` VARCHAR(40)

this is working for me

Solution 8 - Mysql

Rename column name in mysql

alter table categories change  type  category_type varchar(255);

Solution 9 - Mysql

In mysql your query should be like

ALTER TABLE table_name change column_1 column_2 Data_Type;

you have written the query in Oracle.

Solution 10 - Mysql

Syntax: ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;

If table name is Student and column name is Name. Then, if you want to change Name to First_Name

ALTER TABLE Student CHANGE Name First_Name varchar(20);

Solution 11 - Mysql

ALTER TABLE table_name CHANGE old_column_name new_column_name columnDataType;

Solution 12 - Mysql

https://dev.mysql.com/doc/refman/8.0/en/alter-table.html

For MySQL 8

alter table creditReportXml_temp change column applicationID applicantID int(11);

Solution 13 - Mysql

for mysql version 5

alter table *table_name* change column *old_column_name* *new_column_name* datatype();

Solution 14 - Mysql

Rename MySQL Column with ALTER TABLE Command

ALTER TABLE is an essential command used to change the structure of a MySQL table. You can use it to add or delete columns, change the type of data within the columns, and even rename entire databases. The function that concerns us the most is how to utilize ALTER TABLE to rename a column.

Clauses give us additional control over the renaming process. The RENAME COLUMN and CHANGE clause both allow for the names of existing columns to be altered. The difference is that the CHANGE clause can also be used to alter the data types of a column. The commands are straightforward, and you may use the clause that fits your requirements best.

How to Use the RENAME COLUMN Clause (MySQL 8.0)

The simplest way to rename a column is to use the ALTER TABLE command with the RENAME COLUMN clause. This clause is available since MySQL version 8.0.

Let’s illustrate its simple syntax. To change a column name, enter the following statement in your MySQL shell:

ALTER TABLE your_table_name RENAME COLUMN original_column_name TO new_column_name;

Exchange the your_table_name, original_column_name, and new_column_name with your table and column names. Keep in mind that you cannot rename a column to a name that already exists in the table.

Note: The word COLUMN is obligatory for the ALTER TABLE RENAME COLUMN command. ALTER TABLE RENAME is the existing syntax to rename the entire table.

The RENAME COLUMN clause can only be used to rename a column. If you need additional functions, such as changing the data definition, or position of a column, you need to use the CHANGE clause instead.

Rename MySQL Column with CHANGE Clause

The CHANGE clause offers important additions to the renaming process. It can be used to rename a column and change the data type of that column with the same command.

Enter the following command in your MySQL client shell to change the name of the column and its definition:

ALTER TABLE your_table_name CHANGE original_column_name new_col_name data_type;

The data_type element is mandatory, even if you want to keep the existing datatype.

Use additional options to further manipulate table columns. The CHANGE also allows you to place the column in a different position in the table by using the optional FIRST | AFTER column_name clause. For example:

ALTER TABLE your_table_name CHANGE original_column_name new_col_name y_data_type AFTER column_x;

You have successfully changed the name of the column, changed the data type to y_data_type, and positioned the column after column_x.

Solution 15 - Mysql

For MySQL <= 8

ALTER TABLE table_names CHANGE `old_column_name` `new_column_name` varchar(50);

Solution 16 - Mysql

Posting it here, it helps helps else ignore it but when trying to use the Change Column and Rename column functions it is throwing me an error. So figured I would see what statement is generated when we go ahead and rename the column by going into table properties. Below is the command been generated.

EXEC DB.sys.sp_rename N'db.tablename.TrackingIDChargeDescription1' , N'ChargeDescription1', 'COLUMN';

I used and renamed bunch of columns in table.

Solution 17 - Mysql

if you are using gui SQL SMS

you can do db -> Tables -> Table -> columns -> column you want to rename

right click and rename

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMichael OkoliView Question on Stackoverflow
Solution 1 - MysqlRizky FakkelView Answer on Stackoverflow
Solution 2 - MysqlKankeView Answer on Stackoverflow
Solution 3 - MysqlAshu_FalcoNView Answer on Stackoverflow
Solution 4 - MysqlLukasz SzozdaView Answer on Stackoverflow
Solution 5 - MysqlsamView Answer on Stackoverflow
Solution 6 - MysqlRishabh RajView Answer on Stackoverflow
Solution 7 - MysqlRavi EkksView Answer on Stackoverflow
Solution 8 - MysqlDinesh VaitageView Answer on Stackoverflow
Solution 9 - MysqlIshView Answer on Stackoverflow
Solution 10 - MysqlmohimenulView Answer on Stackoverflow
Solution 11 - MysqlFARSView Answer on Stackoverflow
Solution 12 - MysqlRadagast_BrownView Answer on Stackoverflow
Solution 13 - MysqlunknownView Answer on Stackoverflow
Solution 14 - MysqlAshView Answer on Stackoverflow
Solution 15 - MysqlNetwonsView Answer on Stackoverflow
Solution 16 - MysqlDugini VijayView Answer on Stackoverflow
Solution 17 - MysqlVedad HerceglijaView Answer on Stackoverflow