Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как скопировать строки в дочерней таблице. / 5 сообщений из 5, страница 1 из 1
02.03.2004, 17:13
    #32428333
Юрец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скопировать строки в дочерней таблице.
Ребята если кто-то сталкивался с такой задачей помогите как ее проще решить.

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

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

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

Заранее благодарен.
...
Рейтинг: 0 / 0
02.03.2004, 17:31
    #32428384
Roman Ignatiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скопировать строки в дочерней таблице.
insert into ... select ...
...
Рейтинг: 0 / 0
02.03.2004, 17:38
    #32428403
mv
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
02.03.2004, 18:44
    #32428548
Юрец
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как скопировать строки в дочерней таблице.
mv, смотри почему нельзя копировать строки в дочерней таблице таким методом:

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

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

Мне это нужно чтобы копировать записи и при этом копировать записи в подчиненных таблицах (с сохранением подчиненности). Я пишу на Делфи и не хочу писать процедуры копирования на паскале.
...
Рейтинг: 0 / 0
03.03.2004, 07:40
    #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
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как скопировать строки в дочерней таблице. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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