8 de octubre de 2009

How To Remove Foreign Keys In MySQL

Today i have a problem when trying to delete some tables that had circular reference (one was FK NULL) but the way is that you can not drop the table until you drop the foreign key reference for example:

ALTER TABLE myTable DROP FOREIGN KEY FK_nameDefinition;

You can check for more information with the ALTER TABLE instrucction on:
http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

But browsing i have find a really cool solution to drop all foreign Keys or just get the names of this
foreign keys in the following blog:

http://www.justin-cook.com/wp/2006/05/09/how-to-remove-foreign-keys-in-mysql/

I have found it in a commet by "Jason" he recommends this cool query:

select concat('alter table ',table_schema,'.',table_name,' DROP FOREIGN KEY ',constraint_name,';') from information_schema.table_constraints;

Try out... see you... MySQL still Rules !!!