proudmore
@proudmore

Как избежать ошибки при связывании двух таблиц mysql?

Здравствуйте. Есть две таблицы.
cities
city_id - primary key
city_name
и users
id - primary keys
Name
age
city_id

Сделать нужно вот это:
Данные о пользователях хранятся в таблице users, о городах в таблице cities,таблицы связаны между собой по полю city_id


ALTER TABLE `users` ADD  FOREIGN KEY (`city_id`) REFERENCES `cities`(`city_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
;
Ответ MySQL:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`livemasters`.`#sql-8f4_32c`, CONSTRAINT `#sql-8f4_32c_ibfk_1` FOREIGN KEY (`city_id`) REFERENCES `cities` (`city_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

Что это за ошибка?
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
maximw
@maximw
Вероятно у одного из юзеров есть город которого нет с таблице городов.

Проверить можно запросом:
SELECT * FROM users AS u LEFT JOIN cities AS c ON u.city_id = c.city_id WHERE c.city_id IS NULL
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы