2015-06-25 3 views
1

У меня есть 2 таблицы, Office и User. Я хочу сделать отношение OneToMany (в 1 офисе много пользователей).Ошибка SQL FK сбой

Но когда я запустить этот SQL

ALTER TABLE izo_user ADD CONSTRAINT FK_DA8075CFFA0C224 FOREIGN KEY (office_id) REFERENCES izo_office (id) 
CREATE INDEX IDX_DA8075CFFA0C224 ON izo_user (office_id) 

что-то пойдет не так, и я получаю ошибку

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`izoplast`.`#sql-9842_1be9`, CONSTRAINT `FK_DA8075CFFA0C224` FOREIGN KEY (`office_id`) REFERENCES `izo_office` (`id`)) 

Мои таблицы: http://oi57.tinypic.com/whhezr.jpg

+1

Do y ou имеют записи в 'izo_user', которых нет в' izo_office'? Попробуйте запустить следующее, и если оно вернет результаты, то это ваша проблема - 'SELECT DISTINCT u.office_id FROM izo_user AS u LEFT JOIN izo_office AS o ON o.id = u.office_id WHERE o.id IS NULL;' – GarethD

ответ

0

попробовать его, если он работает для Вы-

ALTER TABLE izo_user add index idx_office_id(office_id); 
ALTER TABLE izo_user ADD CONSTRAINT FK_DA8075CFFA0C224 FOREIGN KEY (office_id) REFERENCES izo_office (id); 
Смежные вопросы