integrity and inherit
| От | Bo Lorentsen |
|---|---|
| Тема | integrity and inherit |
| Дата | |
| Msg-id | 3B84D8D3.14F8EE7D@netgroup.dk обсуждение исходный текст |
| Ответы |
Re: integrity and inherit
|
| Список | pgsql-novice |
Hi ...
I hope someone will be so kind to take the time to explain to me what I
have been doing wrong in this example.
I have used PosgreSQL now for a while, and I really like to begin to use
some more of its integrity checks. The database I have been creating
uses the inherit functionality of PG, and this works out beautiful :-)
But I can't make the combination work ! To point out the problem i have
made this small example :
CREATE TABLE base (
id INTEGER PRIMARY KEY,
name TEXT
);
CREATE TABLE derived (
value INTEGER
) INHERITS( base );
CREATE TABLE test_ref (
ref_id INTEGER REFERENCES base,
name TEXT
);
This is the setup, and all I get is a few "NOTICE", about indirect check
and indexes, really nice. Time to use it :-)
INSERT INTO base (id, name) VALUES( 1, 'mother' );
INSERT INTO derived (id, name, value) VALUES( 2, 'child', 42 );
INSERT INTO test_ref (ref_id, name) VALUES( 1, 'mother' );
All this works, but this one dont :
INSERT INTO test_ref (ref_id, name) VALUES( 2, 'child' );
Here it says :
ERROR: <unnamed> referential integrity violation - key referenced from
test_ref not found in base
But a quick :
SELECT * FROM base;
shows :
id | name
----+--------
1 | mother
2 | child
So as fare as I can see, this isn't correct, the id value number 2 is in
"base" table.
Could someone please tell me what I have done wrong ?
/BL
В списке pgsql-novice по дате отправления: