Re: How to append records into a file which has serial - Mailing list pgsql-novice

From george young
Subject Re: How to append records into a file which has serial
Date
Msg-id 20060411104247.5975adad.gry@ll.mit.edu
Whole thread Raw
In response to Re: How to append records into a file which has serial  (James Long <james_mapson@umpquanet.com>)
List pgsql-novice
On Sat, 8 Apr 2006 23:27:07 -0700
James Long <james_mapson@umpquanet.com> threw this fish to the penguins:

> > This worked for me:
> >
> > newschm3=> create table foo(x text,y text,a serial);
>
> I think it just dawned on me -- I have to put the serial ID at
> the end of the table structure, don't I?  So that the fields
> correspond one-to-one, until the temp runs out of columns
> where the master table has the SERIAL field.

Here's a somewhat cleaner method (and faster if that is an issue):

newschm3=> create temp table bar as select * from foo where y='red';
SELECT
-- Now find the proper name of the sequence underlying column 'a':
newschm3=> \d+ foo
                                Table "public.foo"
 Column |  Type   |                    Modifiers                    | Description
--------+---------+-------------------------------------------------+-------------
 x      | text    |                                                 |
 y      | text    |                                                 |
 a      | integer | not null default nextval('foo_a_seq'::regclass) |

-- It's *almost* always safe to assume serial column 'a' of table
-- 'foo' uses foo_a_seq but it's possible for it to be something else,
-- e.g. if the table or column has been renamed, or if the
-- table name+column name is very long.

newschm3=> update bar set a=nextval('foo_a_seq') from foo;
UPDATE 1
newschm3=> select * from foo;
  x   |   y   | a
------+-------+---
 the  | red   | 1
 rain | green | 2
 in   | blue  | 3
 the  | red   | 4

[see http://www.postgresql.org/docs/8.1/interactive/functions-sequence.html]

-- George Young

--
"Are the gods not just?"  "Oh no, child.
What would become of us if they were?" (CSL)

pgsql-novice by date:

Previous
From: Tom Lane
Date:
Subject: Re: Postgres Config/Tuning problem
Next
From: Bruno Wolff III
Date:
Subject: Re: advice on setting up schema sought