mysql> show create table module_permissions; +--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | module_permissions | CREATE TABLE `module_permissions` ( `module` int(3) unsigned NOT NULL default '0', `group` int(3) unsigned NOT NULL default '0', `permission` varchar(30) NOT NULL default '', `value` tinyint(1) NOT NULL default '0', UNIQUE KEY `module_group_permission` (`module`,`group`,`permission`), KEY `group` (`group`), KEY `module` (`module`), KEY `module_group` (`module`,`group`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +--------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> show create table module_acls; +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | module_acls | CREATE TABLE `module_acls` ( `module` int(3) unsigned NOT NULL default '0', `group` int(3) unsigned NOT NULL default '0', UNIQUE KEY `module_group` (`module`,`group`), KEY `group` (`group`), KEY `module` (`module`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> alter table module_permissions add foreign key module_acl_ref (module_group) references module_acls (module_group); ERROR 1072 (42000): Key column 'module_group' doesn't exist in table mysql>