![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вставить в таблицу значение Id из справочников ? [D7, MySQL]
integery © (2005-07-19 14:18:00)Как вставлять в основную таблицу значениє id справочников , я так понимаю сначала нужно произвести поиск в вспровочнике вводимого значениє єсли ево там нет добавить і вернуть id а если есть то вернуть значение id и вставить в основную таблицу , подскажите как ето организовать через запрос.
integery (2005-07-20 15:21:00) [1]Ок всем оргомное СПАСИБО !!!
evvcom (2005-07-20 14:30:00) [2]тогда select из справочника, если вернулся пустой набор, то insert, если получения автоматически сгенеренного id (если такое вообще есть) нельзя, значит опять select из справочника, потом insert уже в целевую таблицу с известным id.
integery (2005-07-20 14:16:00) [3]я читал що "Хранимки-то на MySQL " тока в 5 будут
evvcom (2005-07-20 13:29:00) [4]Да, не заметил... Хранимки-то на MySQL есть? Только сейчас обратил внимание, что MySQL используется.
Lexer (2005-07-20 13:24:00) [5]evvcom, ответ на твой вопрос [20] в [4]
integery (2005-07-20 13:23:00) [6]дание берутса див. [4]
evvcom (2005-07-20 13:17:00) [7]
> integery (20.07.05 12:40) [21]
Ты не ответил на наводящий вопрос и хочешь получить вразумительный ответ?
Lexer (2005-07-20 13:13:00) [8]> [21] integery
достаёшь данные из БД, если не достается - то добавь
integery (2005-07-20 12:40:00) [9]'test' 5 yt не проблема !!!
маленькая проблемка как зделать проверку если нет записи например в polks то вставить і делать ето без try .... finally ??????
evvcom (2005-07-20 08:27:00) [10]Ты где собрался брать autors.name = 'test' и polks.pos = 5? Ведь не константы же у тебя здесь будут. Подумай над этим, и многое прояснится. Если нет, толкнем дальше.
integery (2005-07-19 20:08:00) [11]я так поняв на чистом sql ето уже не удастца зделать
Lexer (2005-07-19 20:00:00) [12]так же, как и для авторов
EXISTS(SELECT....)
Если нет записи, то INSERT.
Или, если уник. значения, то
try INSERT "полки и авторы" finally INSERT "КНИГИ" end
integery (2005-07-19 19:55:00) [13]ура !!
INSERT INTO books (id_avtor, book_name, id_polka) VALUES ((SELECT autors.id FROM autors WHERE autors.name = 'test'), :book_name, SELECT polks.id FROM polks WHERE polks.pos = 5);
работаєт!!
ИЩО маленькая проблемка как зделать проверку если нет записи например в polks то вставить ??????
Lexer (2005-07-19 19:52:00) [14]>так для id_polka нужно тоже зделать SELECT polks.id FROM polks WHERE polks.pos = 5
)))
ага, а что есть другие варианты?
integery (2005-07-19 19:38:00) [15]так для id_polka нужно тоже зделать SELECT polks.id FROM polks WHERE polks.pos = 5
Lexer (2005-07-19 19:08:00) [16]integery, что тут непонятного
1. Добавляешь/обновляешь авторов
2. Добавляешь книгу:
INSERT INTO books (id_avtor, book_name, id_polka) VALUES ((SELECT autors.id FROM autors WHERE autors.name = 'test'), :book_name, :id_polka);
integery (2005-07-19 18:37:00) [17]>зачем, если можно сразу в insert?
КАК ????????
примерчик в студию плиз !!!
integery (2005-07-19 17:23:00) [18]зачем, если можно сразу в insert? как?????????
lexer посмотри [4]
Lexer (2005-07-19 16:58:00) [19][7] integery
А смысл вставки в таблицу книг ID автора если он уже существует в таблице авторов?
Я так думаю, пользователь в приложении выбирает автора, т.е. ID известно уже при добавлении книги. Если такого автора нет, то пользователь добавляет его сначала в базу, и выбирает его, т.е. по-любому ID автора известно.
Зачем тянуть его второй раз?
evvcom (2005-07-19 16:36:00) [20]
> а оставшиеся можжет через update
зачем, если можно сразу в insert?