Dočasné vypnutí kontroly cizích klíčů v MySQL


Cizí klíče jsou sice velmi důležité pro udržení integrity relační databáze, ale v momentě, kdy je potřeba udělat nějakou úpravu do struktury tabulky, začnou se objevovat chyby cizích klíčů. viz. chyba níže.

Cannot change column 'id': used in a foreign key constraint 'app_menu_access_ibfk_1' of table 'data.app_menu_access'

Řešením, které mi jako jediné funguje, spočívá v obalení příkazu příkazem pro vypnutí a opětovné zapnutí kontroly cizích klíčů.

SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE `app_menu` CHANGE `id` `id` int(10) unsigned AUTO_INCREMENT FIRST;
SET FOREIGN_KEY_CHECKS=1;