PHPMyAdmin выдает ошибку при установке внешнего ключа

У меня есть две таблицы, как показано ниже

1:
Имя таблицы: родитель
Столбцы: parent_id (первичный ключ), заголовок

2:
Название таблицы: ребенок
Столбцы: child_id (первичный ключ), title, fk_pid (проиндексированный)

Я хочу сделать ссылку между prent.parent_id а также child.fk_pid , Я установил тип обеих таблиц InnoDB. Я открыл «представление отношений» в структуре дочерней таблицы. Затем я выбрал ограничение внешнего ключа для child.fk_pid и установить parent.parent_id и установите параметры, как показано ниже

имя ограничения: myFK
при удалении: ограничить
на обновление: ограничить

но когда я нажимаю на кнопку сохранения, PHPMyAdmin выдает следующую ошибку.

#1452 - Cannot add or update a child row: a foreign key constraint fails (`fk`.`#sql-168_5f`, CONSTRAINT `myFk` FOREIGN KEY (`fk_pid`) REFERENCES `parent` (`parent_id`))

Помогите мне, пожалуйста

0

Решение

MySQL не создаст внешний ключ, если у вас есть fk_pid в дочерней таблице, который не существует в качестве идентификатора в родительской таблице. Проверьте дочернюю таблицу на наличие ссылок на родительский идентификатор, которых нет в родительской таблице.

select fk_pid from child left join parent on child.fk_pid = parent.id where parent.id is null;
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]