elegant way to fill a table with serial
От | Ivan Sergio Borgonovo |
---|---|
Тема | elegant way to fill a table with serial |
Дата | |
Msg-id | 20071205195049.5aff010b@webthatworks.it обсуждение исходный текст |
Ответы |
Re: elegant way to fill a table with serial
|
Список | pgsql-general |
I've to fill something like: create table DESTtable1 ( pk1 serial primary key, -- rest of stuff ); create table DESTtable2 ( pk2 serial primary key, fk1 int references DESTtable1(pk1) -- rest of stuff ); from data that are such way create table SRCtable1 ( pk1 serial primary key, -- rest of stuff ); create table SRCtable2 ( fk1 int references DESTtable1(pk1) ak int not null, -- rest of stuff unique(fk1,aa) ); substantially (fk1,aa) -> pk2 the best way I thought is: create table temp1 ( pk2 serial primary key, fk1 int references DESTtable1(pk1), ak int not null ); start transaction; insert into temp1 (fk1,ak) select .... insert into DESTtable2 (pk2,fk1,...) select (pk2,fk1...) from SRC2 join temp1 ... ); setval('....',currval('...')); commit; But it looks awful. I did it. It worked... but it is awful! BTW I saw there is no OWNED BY in 8.1, is there any other way to auto-drop sequences when columns get dropped? -- Ivan Sergio Borgonovo http://www.webthatworks.it
В списке pgsql-general по дате отправления: