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

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

07.12.2015, 16:31. Показов 2067. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.12.2015, 16:56
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
Как сделать UPDATE из SELECT в SQL Server
hw_wired 24.01.2025
В современных системах управления базами данных операции обновления и выборки данных являются фундаментальными инструментами для работы с информацией. SQL Server предоставляет мощные команды UPDATE и. . .
Как вставить элемент в массив на указанный индекс в JavaScript
hw_wired 24.01.2025
Массивы являются одной из фундаментальных структур данных в JavaScript, предоставляющей разработчикам мощный инструмент для хранения и управления упорядоченными наборами данных. Они позволяют хранить. . .
Чем отличаются HashMap и Hashtable в Java
hw_wired 24.01.2025
В мире разработки на Java существует множество инструментов для работы с коллекциями данных, и среди них особое место занимают структуры данных для хранения пар ключ-значение. HashMap и Hashtable. . .
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru