mysql Error 1022 - Can't write; duplicate key in table Ошибка при создании таблицы. Решение
Primary tabs
Forums:
Возможные причины ошибки:
-
При создании таблицы: Если ваша таблица содержит внешний ключ, а значит ограничение, то убедитесь, что имя этого ограничения (CONSTRAINT) не дублируется в врамках базы, например в случае если таблица создаётся кодом вроде такого:
CREATE TABLE `uploaded_files` ( `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `path` VARCHAR(2000) NULL DEFAULT NULL COMMENT 'Полное имя файла (т.е. путь к файлу, напр. относительно корня сайта)' , `idзаписиИзтабилицы1` INT(11) NULL DEFAULT NULL, `idзаписиИзтабилицы2` INT(11) NULL DEFAULT NULL, INDEX `имяиндекса1` (`finalReportID`), INDEX `имяиндекса2` (`subsequentReportID`), CONSTRAINT `имяОграниченияВнешнегоКлюча1` FOREIGN KEY (`idзаписиИзтабилицы1`) REFERENCES `имятаблицы1` (`idВтабилице1`) ON DELETE CASCADE, CONSTRAINT `имяОграниченияВнешнегоКлюча2` FOREIGN KEY (`idзаписиИзтабилицы2`) REFERENCES `имятаблицы2` (`idВтабилице2`) ON DELETE CASCADE ) COLLATE='utf8mb4_general_ci' ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT 'Таблица для хранения путей к файлам' ;
-- то убедитесь что имена ограничений:
- имяОграниченияВнешнегоКлюча1
- имяОграниченияВнешнегоКлюча2
не дублируются в рамках вашей БД (той для которой создаётся таблица)
- Log in to post comments
- 5740 reads