mysql 检查日期约束(触发器)

mysql check date constraint (trigger)

抱歉再次打扰,我在 MySql Maria DB 上是全新的(可能也在触发器上)并希望添加检查功能以确保在此 table 中没有插入过去的日期。 我认为唯一的方法 Mysql 是创建一个触发器。 我试图创建一个,但我一直遇到问题。谁能告诉我我做错了什么(也许我需要一杯浓咖啡):

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 个分号。

感谢您的帮助。 我希望我足够清楚...

您需要在查询前更改分隔符:

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 ;

此外,在 END 为事件(触发器)执行的整个代码块之前结束 IF 语句