Search Postgresql Archives

[SOLVED] Re: from 2 keys to serial

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 14 Dec 2008 20:16:35 +0100
Ivan Sergio Borgonovo <mail@xxxxxxxxxxxxxxx> wrote:

The cleanest solution I was able to find was to redefine the
addresses_temp table so that it uses the same sequence as the _dest
table.

Some general design advices would be still welcome.

> I've to import something whose schema looks like

> create table user(
>   userid serial primary key,
> );
> 
> create table adresses_source(
>   userid int references user(userid),
>   addressid int
> );
> 
> where addressid are a sequence for each userid as:
> 
> 1,1
> 1,2
> 1,3
> 2,1
> 2,2
> 3,1
> 4,1
> 4,2
> 4,3
> 
> to something that should be like
> 
> create table adresses_destination(
>   userid int references user(userid),
>   addressid serial primary key
> );
> 
> Currently I was using a temp table
> 
> create table adresses_temp(
>   userid int references user(userid),
>   addressid int,
>   newaddressid serial primary key
> );
> 
> and then simply copy to the final destination.
> 
> But then I need to sync sequences since filling
> adresses_destination from adresses_temp doesn't increment the
> sequence.
> 
> I need some kind of temp table since I need to keep the
> relationship between
> 
> adresses_source.(userid, addressid) ->
> adresses_destination.addressid
> 
> since I've to deal with other related tables.
> 
> Syncing between sequences happens
> 
> select setval('sequence_of_addresses_dest',
> currval('sequence_of_addresses_temp'));
> 
> sort of...
> 
> but the above select is far from being elegant and fail if no rows
> were inserted.
> 
> I'd bet that the problem of transforming 2 keys into a serial is
> pretty common and I'm asking for any alternative more elegant way
> than the above.

-- 
Ivan Sergio Borgonovo
http://www.webthatworks.it


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux