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
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 |