MySQL触发器根据另一个表

时间:2016-01-24 16:11:24

标签: mysql sql triggers sql-update

我已经为这个看似简单的任务工作了好几个小时而没有运气。

我有一个数据库测试,其中包含两个表:房间预订

在表会议室中,有一个名为 reserved_status 的列,其可能值为0和1. room_id 是其主键。

在表预订中,有 room_id 列,它引用表会议室

中的room_id

基本上,我想创建一个触发器,只要表预订(如插入,更新或删除)发生变化,就会将 reserved_status 更新为1。 / p>

phpMyAdmin实际接受以下查询:

DELIMITER $$
CREATE TRIGGER reserved_status_insert AFTER
INSERT ON
 reservation FOR EACH ROW
BEGIN
UPDATE
 room
SET
 room_reserved = 1
WHERE
 room_id = NEW.reservation.room_id ;
END $$
DELIMITER ;

但是,当我尝试执行插入操作时,它会给我这个错误:

Unknown column 'NEW.reservation.room_id' in 'where clause'

我希望有人能为我提供合适的解决方案,谢谢...

1 个答案:

答案 0 :(得分:1)

而不是NEW.reservation.room_id使用NEW.room_id,因为NEW已经引用reservation表中的新行。