From: | Christof Glaser <gcg(at)gl(dot)aser(dot)de> |
---|---|
To: | Kevin Way <kevin(dot)way(at)overtone(dot)org>, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: table inheritance and foreign key troubles |
Date: | 2001-09-11 10:49:13 |
Message-ID: | 20010911104915.9400813098@pinguin.gl.aser.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On Tuesday, 11. September 2001 11:12, I wrote before I thought:
> On Tuesday, 11. September 2001 10:04, Kevin Way wrote:
> > I'm having a little trouble with some inherited tables and a foreign
> > key. Here's a simplified case, to show the trouble.
> >
> > CREATE TABLE node (
> > node_id SERIAL NOT NULL,
> > name TEXT NOT NULL,
Sorry, I missed that line:
> > PRIMARY KEY (node_id)
> > );
> > -- works just fine
> >
> > CREATE TABLE users (
> > email TEXT NOT NULL
> > ) INHERITS (node);
> > -- so far so good....
> >
> > CREATE TABLE item (
> > reason TEXT NOT NULL,
> > author_id INT NOT NULL REFERENCES users (node_id)
> > ) INHERITS (node);
> > ERROR: UNIQUE constraint matching given keys for referenced table
> > "users" not found
>
> That means, there is no UNIQUE constraing on users.node_id ;-)
> Since users inherits that field from node, just make node.node_id
> unique, or even a primary key.
PG cannot inherit primary keys or unique constraints, I recall now. So
you need to ensure uniqueness for users.node_id:
CREATE TABLE users (
node_id INT4 UNIQUE,
....
) INHERITS (node );
The constraints of users.node_id and node.node_id get merged magically.
This should work now on 7.1.3. I did test it this time.
Best regards,
Christof
--
gl.aser . software engineering . internet service
http://gl.aser.de/ . Planckstraße 7 . D-39104 Magdeburg
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2001-09-11 10:58:14 | Re: table inheritance and foreign key troubles |
Previous Message | Christof Glaser | 2001-09-11 09:12:49 | Re: table inheritance and foreign key troubles |