2016-07-06 128 views
0

將表Aluguel更新字段中的狀態插入到忙後。創建觸發器Mysql

不工作。

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

也許這應該是'WHERE id_apart = NEW.apartamento_id_apart'? – Barmar

回答

0

,你必須使用新的關鍵字

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 ; 

----------------------------- ----------插入觸發器-----------------

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

我不明白 –

+0

問題說他希望插入後完成。 – Barmar

+0

@RamonChaves嘗試我的答案,而不是你的一個你有你的錯字sql –

0

要引用要插入到表中的列,你需要使用NEW.column_name

如果busy是一個字符串,則需要將其放在引號中。

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

我無法將status_apart字段更新爲'忙' –

+0

它需要在引號中。 – Barmar

+0

插入後。他將apartamento_id_apart的Aluguel桌子與Apartamento桌子的id_part進行比較。只是不要工作。 –