+ Antworten
Ergebnis 1 bis 7 von 7

Thema: MySQL Trigger

  1. #1
    TP-Newbie SnUgEr macht alles soweit korrekt
    Registriert seit
    Apr 2008
    Beiträge
    4

    Unhappy MySQL Trigger

    Hallo alle zusammen,

    ich suche seit knapp zwei Tagen eine Lösung zu einem MySQL Problem. Ich verwende als DB MySQL 5.0 mit InnoDB Tabellen. Verwende InnoDB um Transaktionssicherheit sowie referentielle Integrietät zu erhalten. Die möchte ich mir mit einem Trigger weiter sicher, jedoch will MySQL nicht so wie ich.

    Mein Problem, ich habe mehrere Tabellen die miteinander verknüpft sind.
    Verbindungen: A ------------ B ------------ C -------------- A
    Beziehungen: n:m 1:1 n:m

    Wenn ich einen Datensatz in die Tabelle zwischen A und B einfüge (wegen n:m Beziehung), möchte ich sicherstellen, das der Datensatz auch wirklich über die Tabelle C zu dem richtigen A gehört. Ich hab mir hierfür auch schon einen Trigger zusammengebaut. Jedoch funktioniert der Trigger nicht so wie ich will. Sobald ein Datensatz in die Tabelle zwischen A und B eingefügt wird soll der Trigger gestartet werden und über C, A überprüfen. Ist keine integrietät gegeben, soll der Trigger ein Rollback vornehmen wie es beim MS SQL Server funktioniert.

    Laut dem MySQL Referenzhandbuch ist jedoch ein Rollback innerhalb eines Triggers nicht erlaubt. Weiß zufällig einer wie ein Trigger abgebrochen werden kann und somit das einfügen rückgängig gemacht wird?

    Schon mal vielen Dank im vorraus!

  2. #2
    DSB
    DSB ist offline
    TP-Veteran DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE DSB ist ein richtiges Arbeitstier - DANKE Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Wäre es statt einem Trigger, der Fehleinträge im Nachhinein löscht, nicht logischer den Eintrag an sich vor dem INSERT mit entsprechenden IF-Anweisungen zu prüfen?
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  3. #3
    TP-Newbie SnUgEr macht alles soweit korrekt
    Registriert seit
    Apr 2008
    Beiträge
    4
    Ja das war meine Absicht, das Einfügen zu verhindern, sobald der Trigger eine falsche referenzielle Integrität feststellt.

  4. #4
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    InnoDB hat doch von Hause aus eine referenzielle Integrität ...
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  5. #5
    TP-Newbie SnUgEr macht alles soweit korrekt
    Registriert seit
    Apr 2008
    Beiträge
    4
    Ja, InnoDB hat eine referenzielle Integrität, aber nicht über mehrere Tabellen hinweg, siehe mein Problem:
    Verbindungen: A ------------ B ------------ C -------------- A
    Beziehungen: A - B n:m; B - C 1:1; C - A n:m

    Es werden Daten in der Tabelle zwischen A und B eingefügt. Dann soll aber sichergestellt werden das die gerade eingefügten Daten richtig zugeordnet sind. Dies kann nur über zwei INNER JOINs über Tabelle B mit C mit A festgestellt werden.

  6. #6
    TP-Urgestein webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von webcreate
    Registriert seit
    Nov 2003
    Ort
    NRW
    Beiträge
    11.660
    Stimmt, mein Fehler ...
    Gruß Mark

    webcreate IT SOLUTIONS
    www.webcreate-nrw.de

    Photoblog....|....flickr

  7. #7
    TP-Newbie SnUgEr macht alles soweit korrekt
    Registriert seit
    Apr 2008
    Beiträge
    4
    Ich hab das Datenbankschema als Bild eingefügt. Das erklären ist immer recht umständlich, ein Bild sagt mehr als tausend Worte

    Gerade festgestellt das ich mich mit den Namen im Bild vertan habe im Vergleich zu meiner Erklärung weiter unten. Sorry!
    Angehängte Grafiken  
    Geändert von SnUgEr (22.04.2008 um 17:04 Uhr)

+ Antworten

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51