How to rename column name foreign key constraint in MySql Query?

By Hardik Savani | May 4, 2016 | | 2062 Viewer | Category : MySql


Share this post:

This is more one post on mysql query, I don't remember exactly time but i had need to change name of foreign key constraint column field. We can rename field name easily if we didn't set foreign key constraint. But if you set foreign key constraint then you can't rename easily. I had rename directly from my phpmyadmin without mysql query but i found bellow error:

Query error:

#1025 - Error on rename of './learn/#sql-46c_246' to './learn/my_table' (errno: 150)

But i found the solution of mysql rename foreign key constraint using mysql query, First we have to drop the foreign key, then change the column, at last we need to again add the foreign key constraint back in column.

I give you also if you want to create and check what do then first create "my_table" using bellow mysql query and then fire bellow sql query for rename column.

Create Table:

CREATE TABLE my_table (

id int unsigned not null AUTO_INCREMENT key,

name VARCHAR(255) default null,

user_id int unsigned not null,

CONSTRAINT `my_table_user_id_fk`

FOREIGN KEY (user_id) REFERENCES users (id)

ON DELETE CASCADE

ON UPDATE CASCADE

);

Rename Column:

ALTER TABLE `my_table`

DROP FOREIGN KEY `my_table_user_id_fk`,

CHANGE COLUMN user_id sender_id int unsigned not null,

ADD CONSTRAINT `my_table_sender_id_fk`

FOREIGN KEY (`sender_id`) REFERENCES `users` (`id`)

ON DELETE CASCADE

ON UPDATE CASCADE

Try this it will help you sure.....