| From: | Robert Müller <muellerrobert(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-de-allgemein(at)postgresql(dot)org | 
| Subject: | Problem mit Foreign Keys (und vererbten Tabellen?) | 
| Date: | 2006-03-07 12:59:58 | 
| Message-ID: | 9794185d0603070459i4723c17et@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-de-allgemein | 
Hallo!
Ich habe ein Problem mit den Foreign Keys in folgender Tabellenkonstellation:
SET SEARCH_PATH TO test;
-- Struktur
CREATE SEQUENCE object_obj_id_seq;
CREATE TABLE object
(
  obj_id int4 NOT NULL DEFAULT nextval('object_obj_id_seq'::text),
  CONSTRAINT object_pkey
    PRIMARY KEY (obj_id)
);
CREATE TABLE obj_obj_rel
(
  parent_id int4 NOT NULL,
  child_id int4 NOT NULL,
  CONSTRAINT obj_obj_rel_pkey
    PRIMARY KEY (parent_id, child_id),
  CONSTRAINT fk_child_id_exists_in_object
    FOREIGN KEY (child_id) REFERENCES object (obj_id)
    ON UPDATE CASCADE ON DELETE CASCADE,
  CONSTRAINT fk_parent_id_exists_in_object
    FOREIGN KEY (parent_id) REFERENCES object (obj_id)
    ON UPDATE CASCADE ON DELETE CASCADE
);
CREATE TABLE person
(
  last_name varchar(40) NOT NULL DEFAULT ''
) INHERITS (object);
CREATE TABLE contactperson
(
  position varchar(40) NOT NULL DEFAULT ''
) INHERITS (object);
-- Daten
INSERT INTO person(last_name) values('Müller');
INSERT INTO contactperson(position) values('Sklave');
Wenn ich jetzt ein
insert into obj_obj_rel(parent_id, child_id) values (2,1);
machen will bekomme ich folgenden Fehler:
FEHLER:  Einfügen oder Aktualisieren in Tabelle »obj_obj_rel« verletzt
Fremdschlüssel-Constraint »fk_child_id_exists_in_object«
DETAIL:  Schlüssel (child_id)=(1) ist nicht in Tabelle »object« vorhanden.
Für mich ist doch aber der Schlüssel 1 sehr wohl in object vorhanden:
select * from object where obj_id = 1;
ergibt die gesuchte zeile;
Was also habe ich falsch gemacht bzw wo ist mein Denkfehler?
Mit freundlichen Gruessen
Robert
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Daniel Seichter | 2006-03-07 15:26:03 | Sequenz mit Ausnahmen | 
| Previous Message | Peter Eisentraut | 2006-03-07 09:19:55 | FFIS e.V. |