dedlfix: MySQL-Trigger

Beitrag lesen

Tach!

Error Code: 1064. You have an error in your SQL syntax; [...] near 'IF NEW Mitarbeiter.gehalt < 4 THEN SELECT Das ist die Fehlermeldung INTO fooba' at line 6 0.000 sec

Dann schau mal in deinen Code kurz vor dem IF. Fehlt da nicht noch ein Semikolon?

Ich möchte gerne das er eine Fehlermeldung ausgibt wenn in Mitarbeiter.Gehalt ein Wert unter dem von mir angegebenen reingeschrieben wird und die Zeile gelöscht wird

Er? Nach meinem Wissensstand hat MySQL keine definierte Möglichkeit, ein Statement ordnungsgemäß abzubrechen[1]. Wenn dein Trigger eine ungünstige Bedingung feststellt, kann er nur selbst einen Fehler provozieren (SELECT von nicht vorhandener Tabelle, Zuweisen von String in INT-Variable), damit er nicht erfolgreich ist, woraufhin das andere Statement nicht ausgeführt wird. Eine Fehlerbehandlung derart in einem Trigger zu implementieren, halte ich jedoch für nicht besonders sauber.

Weiterhin kann MySQL nichts ausgeben. Es kann nur eine (oder mehrere) Ergebnismenge(n) zurückgeben. Aber ein Trigger arbeitet im Hintergrund auch für Statements, bei denen keine Ergebnismenge vorgesehen ist. Da ist es mit dem Ausgeben besonders schlecht.

[1] Ab MySQL 5.5 soll es Signals geben, mit denen man sowas tun kann, las ich.

dedlfix.