1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Werte in zweiter Tabelle löschen, falls in der ersten gelöscht

Dieses Thema im Forum "PostgreSQL" wurde erstellt von Kampfgummibaerlie, 5 November 2019.

  1. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Hallo, ich wiedermal :D

    Habe inzwischen viele Erfahrungen gemacht, aber den gerade eben poste ich mal:

    Ich erstelle eine Tabelle mit einem Integer (Beispiel), und einer Trigger-Procedure, die den selben Wert in die Tabelle two einfügt, und gebe in die Tabelle one den Wert 1 hinzu.
    Code:
    create table one(id integer primary key);
    create table two(id integer references one(id) on delete cascade);
    create function repeat() returns trigger as $$ begin insert into two(id) values (new.id); return new; end; $$ language plpgsql;
    create trigger repeat after insert on one for each row execute procedure repeat();
    insert into one(id) values (1);
    
    Zum testen ob der Wert 1 in der Tabelle two ist.
    Code:
    select * from two;
    
    (Wert 1 ist drin)

    Schauen, ob der Foreign Key mit dem Cascade auch funktioniert:
    Code:
    delete from one;
    select * from two;
    
    (Kein Wert 1 mehr drin)

    Wäre jetzt sehr interessiert was alles mit Events bei Foreign Keys möglich ist ^^

    Freue mich auf Diskussionen darüber :D
     
  2. akretschmer

    akretschmer Datenbank-Guru

    ich wäre ja interessiert zu erfahren, was Du mit Deinem SQL-Code (Erstellung der zwei Tabellen mit je einer Spalte und dem TRIGGER) für ein reales Problem lösen willst? ;-)

    Typischerweise verwendet man sowas für 1:N - Relationen, und typischerweise würde Deine Tabelle "two" weitere 'Payload' - Spalten enthalten, um eben eine 1:N - Beziehung dazustellen.
     
  3. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    Ich hätte gerne, dass wenn ich in der Tabelle "Schnittmuster" einen Datensatz lösche, sich auch alle Produkte mit diesem Schnittmuster löschen.

    Warum?
    Wenn Mutter im Nachhinein draufkommt, ist doch nicht so klug (warum auch immer), und das Schnittmuster löscht, damit sich ebenfalls aus der Tabelle Produkte alle Produkte mit dem jeweiligen Schnittmuster löschen.

    (Produktrückholaktiontechnisch denke ich bereits)...
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Dafür hast Du ja die Lösung gefunden.

    Andreas
     
    Kampfgummibaerlie gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden