Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Вниз

Реляционные БД   Найти похожие ветки 

 
Vlad_Dyachkov   (2004-08-23 14:58) [0]

Возможно вопрос чайника, но я очень поверхностно знаком с реляционными БД...

Почитал теорию реляционных баз данных и возник вопрос по поводу их практического использования. К примеру есть две таблицы:
[Authors]
-AuthorID (Int, Key, AutoInc)
-AuthorName (Str)

[Books]
-BookID (Int, Key, AutoInc)
-AuthorID (Int)
-BookName (Str)

Необходимо добавить в базу Автора и книгу на этого автора. В данный момент это делаю следующим способом:
Сначала добавляю автора:
INSERT INTO [Authors] (AuthorName) VALUES ("Лев Толстой")

Затем иду в конец таблицы, считываю ID того автора, что добавил только что, и только затем точно таким же образом
выполняю добавления книги на этого автора.

А возможно ли одним запросом или более упрощенным способом добавлять в базу автора и сразу необходимую книгу на него?..


 
vovchik   (2004-08-23 15:09) [1]

Утверждать не буду, но мне кажется нет. Ты же сначала должен выполнить запрос и по окончанию выполнения получить значение в таблице1 по которому ты дальше вставляешь запись в другую таблицу2. Если ты напишешь один запрос на вставку записей в две таблицы, то не закончив обработку таблицы1 ты уже пихаешь данные в таблицу2 относительно значения первой, а значения то ещё не присвоились в таблице1. Ты можешь вставить данные в две таблицы если у тебя уже есть какой то ID. По крайней мере у меня не получалось делать такой трюк какой ты хотишь.


 
Карелин Артем ©   (2004-08-23 15:10) [2]

Я хранимыми процедурами в FB для этого пользуюсь. В твоем случае смысла нет пыхтеть над такими вещами.


 
Digitman ©   (2004-08-23 15:21) [3]


> Затем иду в конец таблицы


разберись с понятием "конец таблицы" - это крайне важно


 
Vemer ©   (2004-08-23 19:58) [4]

Вариант:
Если база 1-пользовательская - получи в начале следующий номер (например Select Max(Authors_ID_Field) + 1 From Authors) в переменную, потом вставляй это значение в авторов и в книги. Так по крайней мере номер выуживать не надо.. А потом можно переменную просто увеличивать на 1, до конца "сеанса связи" :).


 
3APA3A ©   (2004-08-23 22:50) [5]

Исходя из определений
  1) РСУБД рассматривает таблицу как множество некоторых элементов
  2) У множества нет понятия "порядковый номер".
  1) + 2) Выражение "конец таблицы" не имеет смысла...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.104 c
4-1091448431
Alek
2004-08-02 16:07
2004.09.19
Свой клиент для IChat!


3-1093269550
DA
2004-08-23 17:59
2004.09.19
Запрос в MSSQL


14-1094036140
Real
2004-09-01 14:55
2004.09.19
Восстановление нормальной загрузки Win9x - Win2000 - Linux


1-1094464161
NewDelpher
2004-09-06 13:49
2004.09.19
TMainMenu и клавиша F10


3-1092918902
Corax
2004-08-19 16:35
2004.09.19
Как правильно закастовать дату?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский