У меня проблемы с некоторыми таблицами.
У меня есть эта таблица:
CREATE TABLE `smenuitem` ( `nome` VARCHAR(150) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `url` VARCHAR(150) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `tipo` CHAR(4) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `ordemmenu` INT(10) NULL DEFAULT NULL, `codparent` INT(10) UNSIGNED NOT NULL, `codmenuitem` INT(10) UNSIGNED NOT NULL, `codmodulo` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`codmodulo`, `codmenuitem`, `codmenuitem2`), CONSTRAINT `FK_smenuitem_smodulos` FOREIGN KEY (`codmodulo`) REFERENCES `smodulos` (`codmodulo`) ) COLLATE='utf8_unicode_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
И второе:
CREATE TABLE `smenuitememp` ( `codempresa` INT(10) UNSIGNED NOT NULL, `codmodulo` INT(10) UNSIGNED NOT NULL, `codmenuitem` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`codmenuitem`, `codempresa`, `codmodulo`) ) COLLATE='utf8_unicode_ci'
Моя проблема в том, что мне нужно сделать FK между codmenuitem, у меня есть эта команда sql, которые приводят к ошибке:
ALTER TABLE `smenuitememp` ADD CONSTRAINT `FK_smenuitememp_smenuitem` FOREIGN KEY (`codmenuitem`) REFERENCES `smenuitem` (`codmenuitem`);
Когда я пытаюсь выполнить, это возвращает эту ошибку:
У кого-то есть идея?
Обновление … Я пытался решить проблему и получил новый вопрос … T_T
CREATE TABLE `smenuitem` ( `nome` VARCHAR(150) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `url` VARCHAR(150) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `tipo` CHAR(4) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci', `ordemmenu` INT(10) NULL DEFAULT NULL, `codparent` INT(10) UNSIGNED NOT NULL, `codmenuitem` INT(10) UNSIGNED NOT NULL, `codmodulo` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`codmodulo`, `codmenuitem`), INDEX `codmenuitem` (`codmenuitem`), CONSTRAINT `FK_smenuitem_smodulos` FOREIGN KEY (`codmodulo`) REFERENCES `smodulos` (`codmodulo`) ) COLLATE='utf8_unicode_ci' ENGINE=InnoDB ROW_FORMAT=DEFAULT
Я решил проблему создания индекса в главной таблице. Но я не знаю, почему у меня были проблемы без этого индекса. Если бы кто-нибудь мог спросить меня, я бы оценил!