Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2011, 01:09   #1
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию ПО ПОВОДУ "FOREIGN KEY" и дочерней таблицы?

Сдраствуйте, я начинающий и меня поставило в затруднительное положение связывание таблиц...
Вобщем я создал две таблицы, связал их ручками(в запросе) - при этом всё хорошо MySQL не ругаеться))
Свистопляска получилась когда я начал заполнять их запросами, первую - главную таблицу - я заполнил без проблем, а вот со второй - дочерней - не получаеться.
Структура дочерней таблицы состоит из 5 полей: Первичный ключ дочерней таблицы(auto_increment), внешний ключ родительской, и три поля для сущности.
Запрос на добавление данных я сделал такой: добавил три поля сущности, первичный ключ не трогаю(он автоинкрементный), и внешний ключ тоже не трогал(ибо не знаю)....

ОШИБКУ ВЫДАЛО ВОТ ТАКУЮ:Cannot add or update a child row: a foreign key constraint fails (`estate`.`room`, CONSTRAINT `room_ibfk_1` FOREIGN KEY (`id_est_new`) REFERENCES `real_est` (`id_est`))

ВОПРОС: Как правильно следует обращаться с внешним ключём(указывать его в запросе(insert в данном случае) или нет, если да - то от куда его вытащить, чтобы потом засунуть в дочернюю таблицу) объясните пожалуйста....

Последний раз редактировалось sem_1989; 01.08.2011 в 01:13.
sem_1989 вне форума Ответить с цитированием
Старый 01.08.2011, 08:20   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Внешний ключ для INSERT-а обязателен, его значение - из той записи главной таблицы, которая будет родителем для вставляемой дочерней записи. Если вставка дочерних записей осуществляется для последней вставленной записи главной таблицы, то значение внешнего ключа можно вытащить с помощью
Код:
SELECT MAX('ключ_гл_таблицы') FROM 'гл_таблица'
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 01.08.2011 в 08:25.
Аватар вне форума Ответить с цитированием
Старый 01.08.2011, 11:37   #3
sem_1989
Пользователь
 
Аватар для sem_1989
 
Регистрация: 25.09.2010
Сообщений: 56
По умолчанию

Благодарю, ответ в точку!!!
sem_1989 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
Ошибка создания foreign key Geddar SQL, базы данных 6 19.05.2009 20:58
violation of FOREIGN KEY KiSH333 БД в Delphi 1 17.02.2009 16:05