MySQL Alter Table Table Добавить столбец сбой с ошибкой индекса 1553MySql

Форум по Mysql
Ответить
Anonymous
 MySQL Alter Table Table Добавить столбец сбой с ошибкой индекса 1553

Сообщение Anonymous »

Почему добавление столбца в таблицу приводит к ошибке индекса и как я могу обойти его? Это MySQL 8.4.5 (MySQL Community Server - GPL). < /P>
Я хочу изменить таблицу с названием 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»