powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как скопировать строки в дочерней таблице.
5 сообщений из 5, страница 1 из 1
Как скопировать строки в дочерней таблице.
    #32428333
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята если кто-то сталкивался с такой задачей помогите как ее проще решить.

У меня есть родительская таблица и дочерняя. Есть функция копирования строки в родительской таблице:
Insert Into master_table select * from master_table where master_table.kod=42

kod - первичный ключ.

как проще скопировать строки в дочерней таблице?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как скопировать строки в дочерней таблице.
    #32428384
Roman Ignatiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
insert into ... select ...
...
Рейтинг: 0 / 0
Как скопировать строки в дочерней таблице.
    #32428403
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Insert Into master_table2 select * from master_table1 where master_table1.kod=42

- так, наверное?

2. Insert Into Slave_table2 select * from Slave_table1 where Slave_table1.Master_Table_kod=42

- продолжение


А что это ты делаешь такое хитрое?
...
Рейтинг: 0 / 0
Как скопировать строки в дочерней таблице.
    #32428548
Юрец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mv, смотри почему нельзя копировать строки в дочерней таблице таким методом:

Insert Into Slave_table2 select * from Slave_table1 where Slave_table1.Master_Table_kod=42

1. первой командой я копирую строку в родительской таблице. При этом уникальное поле 'kod' этой записи увеличивается генератором на 1.
2. Если скопировать дочерние строки то они будут привязаны к старой строке с кодом 42, а не к новой скопированной. (значение поля по которому производится привязка тоже копируется один к одному).

Мне это нужно чтобы копировать записи и при этом копировать записи в подчиненных таблицах (с сохранением подчиненности). Я пишу на Делфи и не хочу писать процедуры копирования на паскале.
...
Рейтинг: 0 / 0
Как скопировать строки в дочерней таблице.
    #32428844
Denis Uskov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что ХП уже не модно? Только одним select'ом все хотят обойтись?

Код: plaintext
1.
2.
3.
4.
id_new = gen_id(...);
Insert Into master_table(kod, ...)
  select :id_new, ... from master_table where master_table.kod= 42 ;
Insert Into Slave_table2(Master_Table_kod, ...)
  select :id_new, ... from Slave_table1 where Slave_table1.Master_Table_kod= 42 ;

------------------------
С уважением, Denis Uskov
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как скопировать строки в дочерней таблице.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]