[MSSQL] Datensätze aus mehreren Tabelle gleichzeitig löschen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MSSQL] Datensätze aus mehreren Tabelle gleichzeitig löschen

    Hallo.
    Ich habe folgendes Problem:
    Ich habe 2 Tabellen --> ta_ort
    --> ta_gebiet
    In der Tabelle ta_ort habe ich 2 Spalten --> id_o(primary) und name_o
    In der Tabelle ta_gebiete habe ich 3 Spalten --> id_g(primary), name_g und ta_ort_id_o (um bezug auf die ta_ort zu bekommen)
    In der Tabelle ta_ort stehen die Namen der Orte und in ta_gebiete dann die dazugehörigen Gebiete, die es in dem Ort gibt mit Bezug der ta_ort_id_o.

    Jetzt würde ich aber gerne in der DB einstellen, das ich wenn ich einen Ort lösche, dann auch die dazugehörigen Gebiete in ta_gebiete gelöscht werden.
    Für jede Hilfe wär ich dankbar.

    Gruß
    Martin

  • #2
    Stichwort ist references und ON DELETE CASCADE

    mfg

    Kommentar


    • #3
      danke...habs jetzt hinbekommen.

      Kommentar


      • #4
        OffTopic:
        Wäre nett, wenn du die Lösung postest. Das Problem könnte ja noch mal öffters gefragt sein.

        Kommentar


        • #5
          Hier die Create's für die DB, um das Problem zu lösen:

          CREATE TABLE ta_orte (
          id_o int(10) NOT NULL auto_increment,
          name_o varchar(30) default NULL,
          PRIMARY KEY (id_o)
          );

          CREATE TABLE ta_gebiete(
          id_g int(11) NOT NULL auto_increment,
          name_g VARCHAR(20) NOT NULL ,
          ta_orte_id_o int(11) NOT NULL,
          PRIMARY KEY ( id_g, ta_orte_id_o ) ,
          FOREIGN KEY ( ta_orte_id_o ) REFERENCES ta_orte ( id_o ) ON DELETE CASCADE
          ) ;

          Kommentar

          Lädt...
          X