Re: [SQL] keeping OID's when copying table

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: molivier(at)yahoo(dot)com (Michael Olivier)
Cc: pgsql-sql(at)postgreSQL(dot)org
Subject: Re: [SQL] keeping OID's when copying table
Date: 1999-02-04 21:51:58
Message-ID: 199902042151.QAA19358@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> ---Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> wrote:
> >
> > Thank you for pointing out my error. It should be:
> >
> > CREATE TABLE new_table (mycol int);
> > INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM
> old_table;
> >
> > I have updated the FAQ.
>
> Hmm... now I don't get an error, but the oid isn't preserved. This is
> running 6.3.2 on RH Linux:
>
> dmdemo=> CREATE TABLE new_table (mycol int);
> CREATE
> dmdemo=> CREATE TABLE old_table (mycol int);
> CREATE
> dmdemo=> insert into old_table values (33);
> INSERT 837643 1
> dmdemo=> select oid from old_table;
> oid
> ------
> 837643
> (1 row)
>
> dmdemo=> INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM
> dmdemo-> old_table;
> INSERT 837644 1
> dmdemo=> select oid from new_table;
> oid
> ------
> 837644
> (1 row)
>
> Further suggestions?

OK, I have a fix for you.

CREATE TABLE new(old_oid oid, mycol int);
SELECT INTO new SELECT old_oid, mycol FROM old;
COPY new TO '/tmp/x';
DELETE FROM new;
COPY new WITH OIDS FROM '/tmp/x';

Does this work for your purposes? I have updated the FAQ.

Should we allow oid's to be transfered via INSERT? I think we should.

INSERT INTO new_table (oid, mycol) SELECT oid, mycol FROM old_table

--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Viorel Anghel 1999-02-04 21:57:18 Re: [SQL] Performance Question
Previous Message Jan Wieck 1999-02-04 21:49:28 Re: [SQL] problem with join & count