Я хочу изменить таблицу с названием MVP, чтобы добавить столбец. Когда я запускаю оператор ALTER, я получаю ошибку индекса: < /p>
Код: Выделить всё
**ERROR 1553 (HY000):** Cannot drop index '': needed in a foreign key constraintЯ пытался сделать обходные пути, перечисленные при переполнении стека. Каждый из них в конечном итоге приводит к той же ошибке индекса 1553.
Ответ на MySQL не может отказаться от индекса, необходимого в ограничении внешнего ключа, состоит в том, чтобы добавить новый индекс в таблицу MVP, который включает в себя столбцы, используемые иностранным ключом. Это не удастся с ошибкой индекса.
Я попытался установить rifect_key_checks = 0; перед запуском оператора ALTER. Это не удается с ошибкой индекса. < /P>
Я попытался отбросить ограничения внешнего ключа на таблицах, связанных с MVP. Я смог сбросить FK на 24 из 25 таблиц, которые имеют ограничения FK на таблице MVP. Однако 25 -я таблица приводит ту же ошибку индекса 1553. Это не удалось так же. < /P>
Я работал в среде разработки. Я гарантировал, что у пользователя базы данных есть правильные привилегии. Я проверил производство и получил ту же ошибку при выполнении того же оператора ALTER. В постановке я смог запустить поле для изменения поля Varchar (75) на Varchar (256), используя Workbench MySQL, без ошибки. < /P>
Таблица MVP требует нового столбца: < /p>
Код: Выделить всё
CREATE TABLE `mvp` (
`mvp_idtype_id` varchar(12) NOT NULL DEFAULT (concat(`idtype`,_utf8mb4'-',lpad(`id`,4,_utf8mb4'0'))),
`idtype` int NOT NULL,
`id` int NOT NULL,
`first_name` varchar(75) NOT NULL,
`mid_name` varchar(75) DEFAULT NULL,
`last_name` varchar(75) NOT NULL,
`donation_bb_id` int DEFAULT NULL,
`donation_report_to` varchar(75) DEFAULT NULL,
`donation_nok_name1` varchar(75) DEFAULT NULL,
PRIMARY KEY (`mvp_idtype_id`),
KEY `mvp_pk` (`idtype`,`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='Y'
< /code>
Таблица M_STRK имеет ограничение иностранного ключа, которое я не могу отбросить: < /p>
CREATE TABLE `m_strk` (
`mvp_idtype_id` varchar(12) DEFAULT (concat(`idtype`,_utf8mb4'-',lpad(`id`,4,_utf8mb4'0'))),
`idtype` int NOT NULL,
`id` int NOT NULL,
`sno` int NOT NULL,
`sdate` date DEFAULT NULL,
`add_date` datetime DEFAULT CURRENT_TIMESTAMP,
KEY `m_strk_pk` (`idtype`,`id`),
CONSTRAINT `m_strk_fk` FOREIGN KEY (`idtype`, `id`) REFERENCES `mvp` (`idtype`, `id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ENCRYPTION='Y'
< /code>
ALTER TABLE mvp
ADD donation_nok_last_verified DATE DEFAULT NULL NULL
AFTER donation_report_to;
< /code>
**ERROR 1553 (HY000):** Cannot drop index '': needed in a foreign key constraint< /code> < /p>
< /blockquote>
Оставьте FK на m_strk: < /p>
Error Code: 1553. Cannot drop index '': needed in a foreign key constraint, когда я пытаюсь применять изменения в M_STRK , чтобы добавить FK на M_STRK Ссылка MVP с использованием WorkBench:
Код: Выделить всё
Error 6125: Failed to add the foreign key constraint. Missing unique key for constraint 'm_strk_fk' in the referenced table 'mvp'Существующий ключ/индекс MVP_PK на MVP не является уникальным. Может быть, мне нужно добавить индекс, покрывающий iDtype и идентификатор, который является уникальным.
Подробнее здесь: https://stackoverflow.com/questions/796 ... ndex-error
Мобильная версия