|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2017, 09:41 | #1 |
Пользователь
Регистрация: 11.01.2015
Сообщений: 20
|
insert into сразу в несколько таблиц (вложенный insert)
Всем привет, есть три таблицы (см. во вложении). СУБД firebird
На каждую запись главной таблицы могут приходиться несколько записей во второй и третьей. Задача продублировать записи во всех таблицах где поле YEAR равно, допустим 2016, при этом изменив YEAR на 2017 и присвоив новый ID главной таблицы, MAINID второй и третьей таблице. |
22.01.2017, 12:26 | #2 |
Пользователь
Регистрация: 11.01.2015
Сообщений: 20
|
Я немного уточню вопрос.
Задача решена следующим способом: Код:
Для главной таблицы: Код:
Но вот в SQL запросе связать все три таблицы пока не получается, может есть у кого идеи? |
22.01.2017, 13:26 | #3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Триггер
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
23.01.2017, 09:21 | #4 |
Пользователь
Регистрация: 11.01.2015
Сообщений: 20
|
Ну тогда в триггере должно быть что-то типа:
Код:
Как тогда выбрать именно те записи, которые требуется дублировать во второй таблице? |
23.01.2017, 09:38 | #5 | ||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||
23.01.2017, 10:37 | #6 |
Пользователь
Регистрация: 11.01.2015
Сообщений: 20
|
|
23.01.2017, 10:56 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Триггером это не получится, если правильно делать, а не халтурно. Можно SQL процедуру сделать. Можно программно. Firebord позволяет вроде пакетную вставку, т.е. в одном запросе туча Insert-ов. В начале пакета что-то типа EXECUTE BLOCK. Только не в курсе как IB это съест, если получится, то все будет гораздо быстрей
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 23.01.2017 в 10:59. |
23.01.2017, 11:10 | #8 | |||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
Цитата:
может можно двумя (или даже ТРЕМЯ) последовательными запросами INSERT ЕСЛИ надо их можно "объединить" путем вставки в ХП(хранимую процедуру). Цитата:
Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 23.01.2017 в 11:13. |
|||
23.01.2017, 12:09 | #9 | |||
Пользователь
Регистрация: 11.01.2015
Сообщений: 20
|
Цитата:
Цитата:
Цитата:
|
|||
23.01.2017, 12:59 | #10 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
программа — запись алгоритма на языке понятном транслятору
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
INSERT | Masafi | PHP | 7 | 13.01.2013 12:32 |
Insert в несколько таблиц одновременно. | alexandro704 | БД в Delphi | 8 | 29.04.2011 11:42 |
Несколько insert into в один. | MrBobyara | SQL, базы данных | 2 | 07.02.2011 18:31 |
Insert - ? | Evgenii | БД в Delphi | 2 | 06.07.2009 02:24 |
как оператором insert вставить данные сразу в две таблицы? | furstenberg | БД в Delphi | 2 | 18.10.2007 16:39 |