Thread: keeping OID's when copying table

keeping OID's when copying table

From
Michael Olivier
Date:
Hi folks,

Using 6.3.2 in Linux and trying to clean up some tables by getting rid
of dead columns, but need to preserve the OID's... The FAQ in "3.17)
What is an oid? What is a tid?" describes this process to copy a
table, keeping the OID's:

        CREATE TABLE new_table (mycol int);
        INSERT INTO new_table SELECT oid, mycol FROM old_table;

But I tried this and it failed:

  dmlists=> create table test (acctname text not null);
  CREATE
  dmlists=> create table test2 (acctname text not null);
  CREATE
  dmlists=> insert into test2 select oid, acctname from test;
  ERROR:  Type of oid does not match target column acctname

How can I do this?

thanks,
Michael

_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com


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

From
Bruce Momjian
Date:
> Hi folks,
>
> Using 6.3.2 in Linux and trying to clean up some tables by getting rid
> of dead columns, but need to preserve the OID's... The FAQ in "3.17)
> What is an oid? What is a tid?" describes this process to copy a
> table, keeping the OID's:
>
>         CREATE TABLE new_table (mycol int);
>         INSERT INTO new_table SELECT oid, mycol FROM old_table;
>
> But I tried this and it failed:
>
>   dmlists=> create table test (acctname text not null);
>   CREATE
>   dmlists=> create table test2 (acctname text not null);
>   CREATE
>   dmlists=> insert into test2 select oid, acctname from test;
>   ERROR:  Type of oid does not match target column acctname
>
> How can I do this?

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.

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