Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/207: Рейтинг темы: голосов - 207, средняя оценка - 4.78
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558
1

Не устанавливается связь между таблицами: Cannot add foreign key constraint

08.06.2014, 22:21. Показов 42228. Ответов 14
Метки нет (Все метки)

Пытаюсь связать 2 таблицы :
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE TABLE Persons (id serial, 
                        name VARCHAR(50), 
                        birthday DATE, 
                        passport VARCHAR(20), 
                        PRIMARY KEY(id)) ENGINE=InnoDB CHARACTER SET utf8;
 
CREATE TABLE Students (id serial, 
                        group_id BIGINT, 
                        person_id BIGINT, 
                        START DATE, 
                        finish DATE,            
                        PRIMARY KEY(id),
                        
                        INDEX (person_id),
                        FOREIGN KEY (person_id) REFERENCES persons(id)  ON DELETE CASCADE ON UPDATE CASCADE
                        ) ENGINE=InnoDB CHARACTER SET utf8;
получаю
ERROR 1215 (HY000): Cannot add foreign key constraint

подскажите где косячу
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2014, 22:21
Ответы с готовыми решениями:

Cannot add foreign key constraint
CREATE TABLE salespeople (sid integer not null auto_increment, sname text not null, comm...

Cannot add or update a child row: a foreign key constraint fails
Здравствуйте! Изучая MySQL и PHP столкнулся с такой вот проблемкой: Cannot add or update a child...

Cannot add or update a child row: a foreign key constraint fails
Доброе время суток. Являюсь полнейшим профаном в MySql и в базах данных собственно тоже....

Как исправить ошибку Error Code 1215, cannot add foreign key constraint?
здравствуйте,создал базу данных по жильцам дома и оказываемым им услугам но почему то выдает ошибку...

14
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 07:43 2
Лучший ответ Сообщение было отмечено newb_programmer как решение

Решение

Типы не совпадали.
SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE Students (id serial, 
                        group_id BIGINT, 
                        person_id BIGINT UNSIGNED NOT NULL, 
                        START DATE, 
                        finish DATE,            
                        PRIMARY KEY(id),
                        
                        INDEX (person_id),
                        FOREIGN KEY (person_id) REFERENCES persons(id)  ON DELETE CASCADE ON UPDATE CASCADE
                        ) ENGINE=InnoDB CHARACTER SET utf8;
1
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 09:48 3
Без данных, на пустых таблицах, все создается.

Смотрите аналогичный пример в Ошибка MySQL: "Cannot add or update a child row: a foreign key constraint fails"
1
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 09:54 4
Цитата Сообщение от cygapb-007 Посмотреть сообщение
все создается
MySQL 5.5
Создаю пустую БД. Копирую под из шапки: Persons - создается; Students - ошибка, описанная ТС. Если исправить тип данных в person_id - все ОК.
Цитата Сообщение от cygapb-007 Посмотреть сообщение
аналогичный пример
Аналогичный чему? У ТС таблиц нет, чтоб заполнять данными
0
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 10:04 5
http://sqlfiddle.com/#!2/326356/1
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 10:15 6
cygapb-007,
Schema Creation Failed: Can't create table 'db_2_aebf3e.students' (errno: 150):
Только вставляйте код ТС!

У Вас
person_id INT
У ТС
person_id BIGINT
суслика видите? А он есть
0
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 10:20 7
JIeIIIa, забавно.

ТС просит подсказать решение, а вы против этого... Ну-ну...
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 10:31 8
cygapb-007, гляньтека мое первое сообщение в теме.

Заодно объясниете ошибку:
Цитата Сообщение от cygapb-007 Посмотреть сообщение
Без данных, на пустых таблицах, все создается
http://screencast.com/t/6QBKK6Zbfcm
0
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 10:54 9
С планшета не очень удобно смотреть sqlfiddle, первый раз ошибся, затем исправился.
JIeIIIa, у вас мания чистописательства?
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 10:57 10
cygapb-007, нет у меня никакой мании. Но если Вы поменяли условие и решили другую задачу, то в чем я виноват? Да еще с пеной у рта отстаиваете свою правоту... ну-ну...
0
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 11:04 11
JIeIIIa, простите, у вас какой уровень троллизма?
0
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558
09.06.2014, 11:53  [ТС] 12
подскажите, а какой тип связи установился в этом конкретном примере? один-к-одному или один-к-многим? я не понимаю как их различить...
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,365
09.06.2014, 11:57 13
Одной записи из Persons соответствует Много записей из Students.
1
1311 / 943 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
09.06.2014, 11:57 14
newb_programmer, если бы вместо INDEX (person_id) вы написали UNIQUE(person_id) - было бы 1х1, а так 1хМ
1
238 / 238 / 113
Регистрация: 03.09.2011
Сообщений: 558
12.06.2014, 22:55  [ТС] 15
Итак продолжаем марафон нубских вопросов=)

У нас есть 2 таблицы предположительно связаные, вот вывод таблицы Students.
+----+----------+-----------+------------+------------+
| id | group_id | person_id | start | finish |
+----+----------+-----------+------------+------------+
| 1 | 1 | 1 | 2010-09-01 | 2014-05-31 |
| 2 | 2 | 2 | 2011-09-03 | 2015-05-31 |
| 3 | 3 | 3 | 2013-09-01 | 2016-06-06 |
| 4 | 4 | 4 | 2013-09-05 | 2017-05-28 |
| 5 | 5 | 5 | 2012-09-15 | 2016-06-22 |
| 6 | 6 | 6 | 2010-09-15 | 2014-05-30 |
+----+----------+-----------+------------+------------+
можно ли както проверить связь таблиц? что б в поле person_id я видел не цифру а реальные данные из таблицы Person?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2014, 22:55

Подскажите, пожалуйста, в чем моя ошибка. Постоянно бьет эту ошибку: 1215. Cannot add foreign key constraint
CREATE TABLE сотрудники (emp_id int unsigned not null auto_increment primary key, f_name...

Ошибка в mysql workbench ERROR: Error 1215: Cannot add foreign key constraint
ERROR: Error 1215: Cannot add foreign key constraint Не могу создать связь с помощью Foreign key...

Ошибка MySQL: "Cannot add or update a child row: a foreign key constraint fails"
Доброе время суток!! Пытаюсь сделать такой запрос: ALTER TABLE `positions` ADD FOREIGN...

Cannot add or update a child row: a foreign key
В чем может быть проблема?Выводит ошибку :"Cannot add or update a child row: a foreign key...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru