Форум программистов, компьютерный форум, киберфорум
MySQL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 32
1

Добавления внешнего ключа

07.12.2015, 16:31. Показов 2050. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте.

У меня имеется две таблицы, хочу к ним добавить внешний ключ.
mysql> desc my_con;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id_contact | int(11) | NO | PRI | NULL | auto_increment |
| last_name | varchar(30) | YES | | NULL | |
| first_name | varchar(30) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| prof | int(11) | NO | | NULL | |
+------------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)

mysql> desc profession;
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| prof_id | int(11) | NO | PRI | NULL | auto_increment |
| profession | varchar(50) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+

mysql> ALTER TABLE my_con
-> add constraint profession_prof_id_fk
-> foreign key(prof)
-> references profession(prof_id);

Видает ошибку :
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails //Не может добавить или обновить
(`greg`.`#sql-dc_1`, CONSTRAINT `profession_prof_id_fk` FOREIGN KEY (`prof`) REFERENCES `profession` (`prof_id`))


В чем проблема, создаю другие (простые) таблицы все нормально ?

Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2015, 16:31
Ответы с готовыми решениями:

Добавление внешнего ключа
Здравствуйте, форумчане! Пытаюсь в MySQL добавить внешний ключ. Вот база -- -- Структура...

Запрос с использованием внешнего ключа
Добрый день ! Как сделать запрос: выбрать OrderItems.order_num где Products.prod_name ='text',...

#1215 - Невозможно добавить ограничения внешнего ключа
таблицы ЮЗЕР -- -- Структура таблицы `user` -- CREATE TABLE `user` ( `id` int(10)...

Как называется ограничение внешнего или уникального ключа по умолчанию?
Если создаю ограничение какого-нибудь ключа (составное UNIQUE в примере) и не даю ему название, то...

4
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
07.12.2015, 16:50 2
Цитата Сообщение от Dinesk Посмотреть сообщение
В чем проблема
Если у тебя таблица my_con уже заполнена данными, то данные в колонке prof должны соответствовать данным колонки prof_id.
1
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 32
14.12.2015, 16:56  [ТС] 3
назрел ещё вопрос по внешнему ключу.

Связь многие ко многим
выбрасывает такую ошибку:
ERROR 1022 (23000): Can't write; duplicate key in table '#sql-a0_2'

Проверил всю схему дубликата нет, поменял на всякий случай имена колонок связующей таблицы

Теперь так >
ERROR 1022 (23000): Can't write; duplicate key in table '#sql-a0_3'

Заранее спасибо
0
4217 / 3058 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
14.12.2015, 17:03 4
Цитата Сообщение от Dinesk Посмотреть сообщение
Проверил всю схему дубликата нет
DDL таблиц покажи
0
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 32
16.12.2015, 16:56  [ТС] 5
1 таблица

+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| id_contact | int(11) | NO | PRI | NULL | auto_increment |
| last_name | varchar(30) | YES | | NULL | |
| first_name | varchar(30) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| gender | char(1) | YES | | NULL | |
| birth | date | YES | | NULL | |
| prof | int(11) | NO | MUL | NULL | |
| zip_code | int(11) | NO | MUL | NULL | |
| status | int(11) | NO | MUL | NULL | |
+------------+-------------+------+-----+---------+----------------+
________________________________________________________________________________ _________-

2 таблица
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| seeking_id | int(11) | NO | PRI | NULL | auto_increment |
| seeking | varchar(20) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
________________________________________________________________________________ _________-

Соединительная таблица
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| cd | int(11) | NO | | NULL | |
| sd | int(11) | NO | | NULL | |
+-------+---------+------+-----+---------+-------+

Вроде должно соединится ...
0
16.12.2015, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2015, 16:56
Помогаю со студенческими работами здесь

Каким образом можно настроить автозаполнение в mysql значения внешнего ключа в другой таблице?
Допустим, есть две таблицы. В одной первичный ключ объявлен в качестве внешнего. Вторая таблица...

Как отключить на время и после включить ограничение внешнего ключа в таблице СУБД MySQL?
Как отключить на время и после включить ограничение внешнего ключа в таблице СУБД MySQL?

SELECT данных в реляционной базе MySQL с выводом данных внешнего ключа
Например, есть MySQL и в ней бд - firma, в бд 3 таблицы - professions, fio, current_workers. В ...

Когда для одного внешнего ключа установлено значение, то для другого установить null
В одной таблице находиться два внешних ключа. Если для одного внешнего ключа установлено значение,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru