2 столбца, указывающие на одно и то же внешнее поле

У меня есть таблица MySQL messages с этими полями: id, parent, profesor, message,

parent а также profesor оба являются пользователями и хранятся в user Таблица (id, name, last name)

Итак, я создал таблицу в phpMyAdmin, а затем я написал:

alter table messaged add foreign key (profesor) references user (id)

и работал отлично! когда я делаю то же самое для родителя, я получаю эту ошибку:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`school`.`#sql-1e30_fe`, CONSTRAINT `#sql-1e30_fe_ibfk_2` FOREIGN KEY (`parent`) REFERENCES `user` (`id`))

Что я делаю не так?

1 ответ

Решение

У вас есть какие-либо данные в таблице сообщений? Если это так, все поля messages.parent должны быть заполнены соответствующими значениями user.id, в противном случае вы получите эту ошибку.

Вы можете проверить не ограничивающие строки этим запросом:

SELECT id, parent FROM messages WHERE parent NOT IN 
(SELECT id FROM user)
Другие вопросы по тегам