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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2017, 03:11   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию SQL-запрос добавления данных в несколько таблиц

Ребят, всем привет, не знал в каком разделе создать данную тему, поэтому создал здесь (да простят меня модераторы).

У меня к Вам вопрос, касательно того, как именно добавляются данные в несколько таблиц через SQL запрос.

Связь таблиц : 1:М,
запрос будет написан в QT- оболочке, так что автоинкримент ключа будет.

как лучше реализовать добавление в несколько таблиц:

insert into table1
values (...)

insert into table2
values (...)


или как?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 22.04.2017, 08:18   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Так и добавляются - в каждую таблицу своим insert-ом
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.04.2017, 12:50   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
как лучше реализовать добавление в несколько таблиц:
А почему несколько таблице если не секрет ? и структура таблицы одинаковые или разные ?
xxbesoxx вне форума Ответить с цитированием
Старый 11.05.2017, 18:12   #4
stat_ya2.0
 
Регистрация: 22.01.2013
Сообщений: 3
По умолчанию

на стороне субд на необходимую таблицу повесить триггер, в котором по команде insert будут добавляться строчки в другие таблицы.
stat_ya2.0 вне форума Ответить с цитированием
Старый 11.05.2017, 20:08   #5
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Фу-фу-фу про триггер. Потом замахаетесь отладку делать, через месяц забудете логику, или программер поменяется, и все, приплыли. Правильно ответили во втором сообщении, можно еще хранимку создать, которая раскладывать будет.
hoolygan вне форума Ответить с цитированием
Старый 16.05.2017, 10:58   #6
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Ребят, добавляю в каждую таблицу по отдельности)

нужен ваш совет, есть схема, в ней 4 таблицы, 4-ая таблица APPARATURES... содержит внешние ключи, и 1 первичный ключ,который связан с другой частью базы данных, подсказали добавить именно такую, для показа названий на форме ... но вот вопрос - и без этой таблицы я могу показывать названия из других трех, вопрос : наличие этой таблицы только дает возможность быстро найти/удалить данные в других таблицах?

Причем удалять придется и из нее, и из других, да и добавлять так же((
Изображения
Тип файла: jpg Y9lJf3WCLW4.jpg (99.8 Кб, 156 просмотров)
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 16.05.2017, 11:44   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
подсказали добавить именно такую, для показа названий на форме ...
и не сказали ЗАЧЕМ?!

если исключительно для показа, то вполне можно заменить таблицу на представление(View).
Код:
select models.kod_model, models.name_model, marks.kod_mark, marks.name_mark, types.kod_type, types.name_type 
from models
inner join marks on .....
inner join types on ....
А может именно это (сделать такое представление) и было рекомендовано?


Наличие представления дает возможность не писать в рабочих запросах ВСЕ таблицы (сокращение "рабочего" кода)
Код:
--полная информация по модели c использованием передставления 
select name_model, name_mark, name_type from apparatures where name_model  =

-- и тоже с использованием "исходных" таблиц
select name_model, name_mark, name_type from models 
inner join marks on marks.kod_mark =models.kod_mark
inner join types on types.kod_type =marks.kod_type 
where name_model =
Код:
--полная информация по всем моделям марки 
select name_model, name_mark, name_type from apparatures where name_mark =

--полная информация по типу
select name_model, name_mark, name_type from apparatures where name_type =
и не требует никаких "дополнительных" расходов(действий) ни при добавлении, ни при удалении, ни при изменениях в "базовых" таблицах.

Другое дело если в рекомендации было ещё и сделать ВСЕ исходные таблицы "независимыми" (убрать оттуда внешние ключи, переместив их в одну новую рекомендованную таблицу).
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 16.05.2017 в 11:58.
evg_m на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос с 2-ух связанных таблиц lot555 SQL, базы данных 4 09.07.2012 14:43
sql запрос на удаление из связанных таблиц NeVirus БД в Delphi 3 23.11.2011 12:01
Запрос на добавления полей в таблице базы данных через phpMyAdmin SwanHeart PHP 6 11.07.2011 20:12
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос из двух таблиц.(сложный) Miha87 БД в Delphi 5 10.11.2008 11:04