很抱歉再次感到不安,我在MySql Maria DB上完全是新的(可能还在触发器上)并且希望添加检查功能以确保此表中没有插入过去的日期。 我相信唯一的方法就是创建一个触发器。 我试图创建一个,我一直有问题。有人能告诉我我在这里做错了吗(也许我需要一杯浓咖啡):
CREATE TRIGGER check_date BEFORE INSERT on Event
FOR EACH ROW
BEGIN
if new.date <= now() then
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Event cannot start in the past event cannot start now. Choose an ulterior date'
end
end if;
请我在终端上。每次系统看到分号时,它都会结束我的查询。因此,我不能有2个分号。
感谢您的帮助。 我希望我足够清楚......
答案 0 :(得分:0)
您需要在查询之前更改分隔符:
delimiter //
CREATE TRIGGER check_date BEFORE INSERT on Event
FOR EACH ROW
BEGIN
IF new.date <= now() THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Event cannot start in the past event cannot start now. Choose an ulterior date';
END IF;
END;//
delimiter ;
另外,在IF
执行事件(触发器)的整个代码块之前结束END
语句