2016-07-06 14 views
0

Nach dem Einfügen in die Tabelle Aluguel Update-Feld Status zu beschäftigt.Create Trigger Mysql

Nicht funktionieren.

DELIMITER $$ 
CREATE TRIGGER Tgr_Status_Update AFTER INSERT 
ON aluguel 
FOR EACH ROW 
    BEGIN 
     UPDATE apartamento SET status_apart = busy 
     WHERE id_apart = apartamento_id_apart; 
    END$$ 
DELIMITER ; 
+0

Vielleicht sollte es sein WHERE id_apart = NEW.apartamento_id_apart'? – Barmar

Antwort

0

Sie haben neues Schlüsselwort

DELIMITER $$ CREATE TRIGGER Tgr_Status_Update AFTER UPDATE 

ON aluguel FOR EACH ROW 

BEGIN UPDATE apartamento SET status_apart = new.busy 

WHERE id_apart = new.apartamento_id_apart; 

END$$ DELIMITER ; 

----------------------------- verwenden ---------- Trigger einfügen -----------------

DELIMITER $$ CREATE TRIGGER Tgr_Status_Insert AFTER INSERT 

ON aluguel FOR EACH ROW 

BEGIN UPDATE apartamento SET status_apart = new.busy 

WHERE id_apart = new.apartamento_id_apart; 

END$$ DELIMITER ; 
+0

Ich habe nicht verstanden –

+0

Die Frage sagt, dass er es nach dem Einfügen getan werden will. – Barmar

+0

@RamonChaves versuchen Sie meine Antwort anstelle von Ihrem Sie haben Tippfehler in Ihrem sql –

0

Um auf eine Spalte aus der Tabelle zu verweisen, in die Sie einfügen, Sie müssen NEW.column_name verwenden.

Und wenn busy eine Zeichenfolge ist, müssen Sie es in Anführungszeichen setzen.

DELIMITER $$ 
CREATE TRIGGER Tgr_Status_Update AFTER INSERT 
ON aluguel 
FOR EACH ROW 
    BEGIN 
     UPDATE apartamento SET status_apart = 'busy' 
     WHERE id_apart = NEW.apartamento_id_apart; 
    END$$ 
DELIMITER ; 

DEMO

+0

Ich kann status_apart Feld zu "beschäftigt" nicht aktualisieren –

+0

Es muss in Anführungszeichen gesetzt werden. – Barmar

+0

Nach dem Einfügen. Er vergleicht die apartamento_id_apart die Aluguel-Tabelle mit id_part des Apartamento-Tisches. Arbeite einfach nicht. –