Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
1-1094029818
Denmin
2004-09-01 13:10
2004.09.19
Как отсечь пробелы спереди и сзади слова?


1-1094022757
BRemB
2004-09-01 11:12
2004.09.19
Вопрос про Record


3-1093387450
3APA3A
2004-08-25 02:44
2004.09.19
Транзакции


14-1093540009
Лена
2004-08-26 21:06
2004.09.19
Помогите выбрать клиента для форума.


1-1094187578
Anhonio
2004-09-03 08:59
2004.09.19
Delphi & Scaner