Обсуждение: Parent table has not oid?

Поиск
Список
Период
Сортировка

Parent table has not oid?

От
"Zhidian Du"
Дата:



Dear All:

Please disregerd my last email.

I want to create a delete cascade in children tables.  The primary key of
parent table is oid.


CREATE TABLE Link (
   Protein_ID oid
   CONSTRAINT one
   REFERENCES Protein (oid)
   ON DELETE CASCADE,
   Link varchar(128)
);

Create child table is ok.

When I insert a record into this child table, it says
"ERROR: constraint one: table protein does not have an attribute oid"

Why?


Thanks.


_________________________________________________________________
STOP MORE SPAM with the new MSN 8 and get 2 months FREE*
http://join.msn.com/?page=features/junkmail


Re: [SQL] Parent table has not oid?

От
Tom Lane
Дата:
"Zhidian Du" <duzhidian@hotmail.com> writes:
> CREATE TABLE Link (
>    Protein_ID oid
>    CONSTRAINT one
>    REFERENCES Protein (oid)
>    ON DELETE CASCADE,
>    Link varchar(128)
> );
> When I insert a record into this child table, it says
> "ERROR: constraint one: table protein does not have an attribute oid"

How old is your Postgres?

IIRC, this was made to work in 7.2 or thereabouts.

Note that using OID as a foreign key is not really a good idea, because
it's problematic to dump and restore.  You'd be better off with a serial
column as primary key.

            regards, tom lane

Re: [SQL] Parent table has not oid?

От
"scott.marlowe"
Дата:
On Sun, 10 Nov 2002, Tom Lane wrote:

> "Zhidian Du" <duzhidian@hotmail.com> writes:
> > CREATE TABLE Link (
> >    Protein_ID oid
> >    CONSTRAINT one
> >    REFERENCES Protein (oid)
> >    ON DELETE CASCADE,
> >    Link varchar(128)
> > );
> > When I insert a record into this child table, it says
> > "ERROR: constraint one: table protein does not have an attribute oid"
>
> How old is your Postgres?
>
> IIRC, this was made to work in 7.2 or thereabouts.
>
> Note that using OID as a foreign key is not really a good idea, because
> it's problematic to dump and restore.  You'd be better off with a serial
> column as primary key.

Yeah, I found that out the hardway and spent a couple days rewriting an
app that had used OIDs in a way it really shouldn't have.

The only time I use OIDs now is to get rid of duplicate rows by hand or
such like that.