Sql DELETE Befehl

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von splasch, 10.07.2008.

  1. #1 splasch, 10.07.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Hi
    Wie Löscht man am besten mehre Datensätze aus mehren Tabellen.

    Ich hab da einen User den ich löschen möchte. Dieser hat in vielen Tabellen einen Fremdkey der auch mit gelöscht werden soll.
    Wie stellt man dafür am besten den Sql befehl zusammen.

    Also ich möcht jetzt nicht 5 Delete befehle hintereinander ausführen sondern das mit 1 Befehl lösen.

    Mfg Splasch
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. #2 xandros, 10.07.2008
    xandros

    xandros IT Consultant, Cisco Registered Partner
    Moderator

    Dabei seit:
    05.07.2007
    Beiträge:
    25.888
    Zustimmungen:
    91
    Ort:
    Umkreis Duisburg, neben Mannheim, hinter Hamburg
    Das geht IMHO nur mit referenzieller Integrität und der dazugehörenden Löschweitergabe, die aber nicht von allen DBS unterstützt wird.

    Welches DBS verwendest du?
     
  4. #3 HalbleiterFreak, 10.07.2008
    HalbleiterFreak

    HalbleiterFreak Erfahrener Benutzer

    Dabei seit:
    07.06.2007
    Beiträge:
    3.369
    Zustimmungen:
    0
    delete from * where Spaltenname = "löschuser"

    kp, hab meine doppelseitige selbstgeschriebene dokumentation herausgekramt...
    ABer testste besser erstmal nicht, bis andere was sagen...
    falls from * nicht funktioniert muss du alle tabellennamen die erschünscht sind aufführen :( glaub ich...
     
  5. #4 splasch, 10.07.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Verwendet wird mysql. Tabellen typ mylsam.

    Mfg Splasch
     
  6. #5 splasch, 10.07.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Hab in der Doku nun Folgendes gefunden

    http://dev.mysql.com/doc/refman/4.1/en/delete.html

    Multiple-table syntax:
    DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    tbl_name[.*] [, tbl_name[.*]] ...
    FROM table_references
    [WHERE where_condition]

    Or:

    DELETE [LOW_PRIORITY] [QUICK] [IGNORE]
    FROM tbl_name[.*] [, tbl_name[.*]] ...
    USING table_references
    [WHERE where_condition]


    Nach dem her würde als der Befehl dann in etwas so ausehen:

    DELETE Tabel1,Tabel2,Tabel3 FROM Tabel1,Tabel2,Tabel3 WHERE Tabel1.id=Tabel2.id AND Tabel3.id=Tabel1.id AND User_id = '1';

    Wenn ich mich nicht irre

    Mfg Splasch
     
  7. Weiny

    Weiny Erfahrener Benutzer

    Dabei seit:
    10.07.2007
    Beiträge:
    484
    Zustimmungen:
    0
    gibts dazu eine oberfläche? also ne php seite oder ähnlcihes?
    oder willst du den hardcore via reinem sql aus der Datenbank entfernen.

    Refferenzielle Integriätä wird nur von InnoDB unterstützt das heist du musst das auf alle fälle manuell machen.
    wichtig ist erst alle N datensätze zu lsöchen und dann den Hauptdatensatz (User selbst) dieser hat ja hoffentlich eine id und nun musst du nur noch wissen in welchen tabellen die user ID´s vorkommen und dort in jeder
    delete from tabellenname where userid = deineid

    und fertig ist das...
     
  8. AdMan

    Es ist generell erstmal empfehlenswert alle ggf. veralteten oder fehlerhaften Treiber zu scannen und auf neue zu aktualisieren. Hier kannst du einen Treiber-Scanner downloaden. Das erspart oftmals viel Ärger und hilft gegen diverse Probleme.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  9. #7 splasch, 15.07.2008
    splasch

    splasch Erfahrener Benutzer

    Dabei seit:
    29.01.2007
    Beiträge:
    901
    Zustimmungen:
    0
    Ich hab das soweit schon gelöst.

    Das ich darauf selber achten muß war mir klar weil ich noch mylsam tabellen verwende.

    Der Befehel hat auch soweit funktioniert. Nur ergab sich daraus ein anderes Problem wenn nicht alle Fremdkey vorhanden waren wurde nix gelöscht. Also auch nicht die Datensätze der anderen 2 Tabellen.

    Da es sich dabei um ein Dynamische Cms handelt werden einige Datensätze mit fremdkey erst zur laufzeit erstellt.

    Naja habs auf die alte Methode mal gelöst mit 3 von einandere getrennten Sql befehlen.

    Ja eine Benutzer Oberflache gibt es.Die ich allerdings selber erstelle bwz erweitere.Und im php code die Sql anweisungen angeben werden müssen.

    Das ist alles leicht aus dem Diagram ersichtlich so sehe ich welche Tabellen eine Verbindung haben und auch mit einbezogen werden müssen. Die Id selbst wird davor von der Db abgefragt und per Get dann an die entsprechende php Datei weitergeleitet. Diese prüft dann ob man dazu berechtig ist und wenn ja werden die 3 Sql befehle ausgeführt. Zusätzlich wird der Get wert auf Integer gesetz damit keine anderen Befehle aufgenohmen werden.

    Mfg Splasch
     
  10. Weiny

    Weiny Erfahrener Benutzer

    Dabei seit:
    10.07.2007
    Beiträge:
    484
    Zustimmungen:
    0
    ja dann ist ja alles gut,
    so in der art hätte ich es wohl auch gelöst.
    also ist der Thread ja damit erledigt.

    cu
     
Thema: Sql DELETE Befehl
Besucher kamen mit folgenden Suchen
  1. sql delete befehl

    ,
  2. zwei sql delete nacheinander

    ,
  3. sql delete from multiple tables

    ,
  4. mehrere sql delete befehle nacheinander,
  5. sql befehl fremdschlüssel löschen
Die Seite wird geladen...

Sql DELETE Befehl - Ähnliche Themen

  1. Logitech G910 Orion Spark - Beleuchtungsmodus "Befehle"

    Logitech G910 Orion Spark - Beleuchtungsmodus "Befehle": Hi Leute, ich hab mir die neue "Logitech G910 Orion Spark" zugelegt... grundsätzlich is das Teil echt genial! Nur komm ich bei einer Sache...
  2. SQL - WHERE Klausel um nach einem Datum zu suchen

    SQL - WHERE Klausel um nach einem Datum zu suchen: Hi, ich habe gerade ein Problem mit SQL. Ich versuche nach einem Datum zu suchen, aber ich mache da irgend etwas falsch. SELECT preis AS...
  3. Relativ ungewöhnliche Frage-Befehle am PC mehrere Male in Folge durch führen

    Relativ ungewöhnliche Frage-Befehle am PC mehrere Male in Folge durch führen: Hallo, ich habe eine relativ ungewöhnliche, für mich aber wichtige Frage: Ist es möglich, dass Aktionen die im am PC mache, mehrere Male...
  4. Befehl configure Permission denied

    Befehl configure Permission denied: Halli Hallo ich müsste ein Programm installieren was es nicht als Paket gibt. Dafür braucht man ja den Befehl "configure". Nur wenn ich diesen...
  5. SQL Problem PLZ

    SQL Problem PLZ: Hallo zusammen, folgendes Problem stellt sich mir: Ich möchte alle Orte in unserer Datenbank rausfiltern, deren PLZ sich um 10000 unterscheiden....