1
我想制作一个防止插入重叠日期的触发器。例如: 如果我在2016年3月3日至2016年5月3日期间提供“Oferta”优惠,我无法在日期2/3/2016至2016年4月3日期间插入新优惠或4/3/2016至7/3/2016触发错误mysql
我的SELECT检查我相信的条件。如果发生这种情况,我不知道该怎么做是错误的。我是新来的触发器和Im有语法错误,我检查触发器语法,但无法找到问题...
DELIMITER $$
CREATE TRIGGER tri_check_date_overlap BEFORE INSERT ON Oferta
FOR EACH ROW
BEGIN
IF EXISTS(
SELECT * FROM Oferta WHERE
(new.morada = morada AND new.codigo = codigo
AND ((new.data_inicio BETWEEN data_inicio AND data_fim)
OR new.data_fim BETWEEN data_inicio AND data_fim)
)
)
/*CALL raise_application_error(3001, 'Not odd number!'); */
DECLARE msg varchar(255);
set msg = concat('Error: That right is not allowed!', cast(new.right as char));
signal sqlstate '45000' set message_text = msg;
END $$
DELIMITER ;