2016-07-06 160 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进行比较。只是不要工作。 –