Re: How to append records into a file which has serial

From: James Long <james_mapson(at)umpquanet(dot)com>
To: george young <gry(at)ll(dot)mit(dot)edu>
Cc: pgsql-novice(at)postgresql(dot)org
Subject: Re: How to append records into a file which has serial
Date: 2006-04-09 06:22:29
Message-ID: 20060409062229.GA78750@ns.museum.rain.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Sat, Apr 08, 2006 at 10:21:14PM -0400, george young wrote:
>
> This worked for me:
>
> newschm3=> create table foo(x text,y text,a serial);
> newschm3=> insert into foo (x,y) values ('the','red');
> INSERT 0 1
> newschm3=> insert into foo (x,y) values ('rain','green');
> INSERT 0 1
> newschm3=> insert into foo (x,y) values ('in','blue');
> INSERT 0 1
> newschm3=> create temp table bar as select * from foo where y='red';
> SELECT
> newschm3=> alter table bar drop column a;
> newschm3=> insert into foo select * from bar;
> INSERT 0 1
>
> newschm3=> select * from foo;
> x | y | a
> ------+-------+----
> the | red | 1
> rain | green | 2
> in | blue | 3
> the | red | 4
>
> You don't need to know the field names "x" and "y", just the
> serial field name "a".
>
> Is this what you meant?

Thank you for your reply, George.

Yes, it sounds very promising, but:

t30 : 23:11:12 /home/james> psql --version
psql (PostgreSQL) 8.0.7
contains support for command-line editing
t30 : 23:11:16 /home/james> ssh www postgres --version
postgres (PostgreSQL) 8.0.4

t30 : 23:11:34 /home/james> psql
Welcome to psql 8.0.7, the PostgreSQL interactive terminal.

Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit

james=> \d client_table
Table "public.client_table"
Column | Type | Modifiers
----------------+---------------+------------------------------------------------------------------
cli_id | integer | not null default nextval('public.client_table_cli_id_seq'::text)
cli_code | character(20) |
cli_name | character(40) |
cli_bill_addr1 | character(40) |
cli_bill_addr2 | character(40) |
cli_bill_city | character(30) |
cli_bill_state | character(2) |
cli_bill_zip | character(10) |
cli_ship_addr1 | character(40) |
cli_ship_addr2 | character(40) |
cli_ship_city | character(30) |
cli_ship_state | character(2) |
cli_ship_zip | character(10) |
cli_phone | character(20) |
cli_email | character(40) |
Indexes:
"client_table_pkey" PRIMARY KEY, btree (cli_id)

james=> create temp table temp as select * from client_table where cli_code = 'old_client_code';
SELECT
james=> update temp set cli_code = 'new_client_code', cli_name = 'New But Similar Client Entity';
UPDATE 1
james=> alter table temp drop column cli_id;
ALTER TABLE
james=> INSERT INTO client_table SELECT * from temp;
ERROR: column "cli_id" is of type integer but expression is of type character
HINT: You will need to rewrite or cast the expression.
james=> \q

In response to

Browse pgsql-novice by date

  From Date Subject
Next Message James Long 2006-04-09 06:27:07 Re: How to append records into a file which has serial
Previous Message Bruce Momjian 2006-04-09 03:38:08 Re: PostgreSQL a slow DB?