2017-02-19 5 views
0

Ich möchte nur Trigger in meine SQL erstellen, aber einige Fehler passiertMySQL IF-Anweisung in Trigger-

Dies ist der Code

CREATE TRIGGER delete_santri_in_kamar 
AFTER UPDATE ON 
santri 
FOR EACH ROW 
BEGIN 
DECLARE stat INT 
SET stat = select status FROM santri WHERE id_santri=new.id_santri 

IF (stat = 0) THEN 
DELETE FROM santri_kamar_asrama WHERE id_santri=new.id_santri 
END IF 

END 

und dies ist die Fehlermeldung

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET stat = select status FROM santri WHERE id_santri=new.id_santri 

IF (stat =' at line 7 

bitte Hilf mir

+1

Ihre Aussagen Terminatoren müssen (;) - und wenn Sie Trigger in MySQL zu erstellen versucht hast Du das Trennzeichen etwas anderes als bevor Sie versuchen, den Trigger zu erstellen (und ihn danach zurückzusetzen)? –

+0

Sie fehlen nach jeder Anweisung im Rumpf des Triggers die Semikola. Außerdem könnte der gesamte Body durch eine einzige Multi-Table-Update-Anweisung ersetzt werden. – Shadow

Antwort

0

Fügen Sie Semikolons nach den Anweisungen hinzu und ändern Standard-Trennzeichen (;) vor dem Code von create trigger. Sonst wird es

SQL Error(1064): You have an error in your SQL Syntax; 

geben Nachdem der Trigger-Code erstellen machen ; als Standardtrennzeichen

DELIMITER $$ 
    CREATE TRIGGER delete_santri_in_kamar 
    AFTER UPDATE ON 
    santri 
    FOR EACH ROW 
    BEGIN 
    DECLARE stat INT; 
    SET stat = (select status FROM santri WHERE id_santri=new.id_santri); 

    IF (stat = 0) THEN 
    DELETE FROM santri_kamar_asrama WHERE id_santri=new.id_santri; 
    END IF; 

    END 
$$ 
DELIMITER ; 
+0

Ist das gelöst? – jophab

+0

Ich bekomme immer noch die gleiche Fehlermeldung und für jede Zeile mit Semikolon hat zusätzliche Fehlermeldung, die sagte "Unerwartete Zeichen in der Nähe (;)" –

+0

tut mir leid, aber es funktioniert immer noch nicht, trotzdem danke für Ihre Hilfe bro. –