Re: table inheritance and foreign key troubles
| От | Christof Glaser |
|---|---|
| Тема | Re: table inheritance and foreign key troubles |
| Дата | |
| Msg-id | 20010911104915.9400813098@pinguin.gl.aser.de обсуждение исходный текст |
| Ответ на | Re: table inheritance and foreign key troubles (Christof Glaser <gcg@gl.aser.de>) |
| Ответы |
Re: table inheritance and foreign key troubles
|
| Список | 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
В списке pgsql-sql по дате отправления: