Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Violation of foreign key constraint mit Delphi/Firebird

  Alt 19. Sep 2005, 06:05
Hi Elliot,

deine Tabellen stehen in einer master-detail Beziehung vom Typ OWNERSHIP mit der Komplexität ANLAGEN (0,1) -- SCHAEDEN (0,*). Du hast die falsche DRI rule gewählt. Nicht SET NULL oder SET DEFAULT, sondern CASCADE ist hier gefragt. In deinem Programm möchtest du darauf achten, dass der Benutzer beim Löschen von Anlagen auf vorhandene Schaeden hingwiesen wird, die automatisch mit gelöscht werden.

SQL-Code:
CREATE TABLE schaeden (
    id DOM_PK,
    name DOM_DISPLAY,
    anlagen_id DOM_FK
);

ALTER TABLE schaeden ADD CONSTRAINT pk_schaeden PRIMARY KEY (id);

ALTER TABLE schaeden ADD CONSTRAINT fk_schaeden FOREIGN KEY (anlagen_id)
  REFERENCES anlagen (id) ON DELETE CASCADE ON UPDATE CASCADE;
Grüße vom marabu
  Mit Zitat antworten Zitat