Used tables:
phppos_permissions_actions:
mysql> show create table phppos_permissions_actions; +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | phppos_permissions_actions | CREATE TABLE `phppos_permissions_actions` ( `module_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `person_id` int(11) NOT NULL, `action_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`module_id`,`person_id`,`action_id`), KEY `phppos_permissions_actions_ibfk_2` (`person_id`), KEY `phppos_permissions_actions_ibfk_3` (`action_id`), CONSTRAINT `phppos_permissions_actions_ibfk_1` FOREIGN KEY (`module_id`) REFERENCES `phppos_modules` (`module_id`), CONSTRAINT `phppos_permissions_actions_ibfk_2` FOREIGN KEY (`person_id`) REFERENCES `phppos_employees` (`person_id`), CONSTRAINT `phppos_permissions_actions_ibfk_3` FOREIGN KEY (`action_id`) REFERENCES `phppos_modules_actions` (`action_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +----------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
phppos_modules
mysql> show create table phppos_modules; +----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | phppos_modules | CREATE TABLE `phppos_modules` ( `name_lang_key` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `desc_lang_key` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `sort` int(10) NOT NULL, `module_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`module_id`), UNIQUE KEY `desc_lang_key` (`desc_lang_key`), UNIQUE KEY `name_lang_key` (`name_lang_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci | +----------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Query:
ALTER TABLE `phppos_permissions_actions` CHANGE `module_id` `module_id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, CHANGE `action_id` `action_id` VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
Error:
#1832 - Cannot change column 'module_id': used in a foreign key constraint 'phppos_permissions_actions_ibfk_1'
(there were no errors in mysql 5.5)
The only way to make it work:
SET foreign_key_checks = 0;
What has changed in 5.6? This is mistake?
source share