mysql after insert trigger which updates another table's column mysql after insert trigger which updates another table's column mysql mysql

mysql after insert trigger which updates another table's column


With your requirements you don't need BEGIN END and IF with unnecessary SELECT in your trigger. So you can simplify it to this

CREATE TRIGGER occupy_trig AFTER INSERT ON occupiedroom FOR EACH ROW  UPDATE BookingRequest     SET status = 1   WHERE idRequest = NEW.idRequest;


Try this:

DELIMITER $$CREATE TRIGGER occupy_trigAFTER INSERT ON `OccupiedRoom` FOR EACH ROWbegin       DECLARE id_exists Boolean;       -- Check BookingRequest table       SELECT 1       INTO @id_exists       FROM BookingRequest       WHERE BookingRequest.idRequest= NEW.idRequest;       IF @id_exists = 1       THEN           UPDATE BookingRequest           SET status = '1'           WHERE idRequest = NEW.idRequest;        END IF;END;$$DELIMITER ;


Maybe remove the semi-colon after set because now the where statement doesn't belong to the update statement. Also the idRequest could be a problem, better write BookingRequest.idRequest