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

mysql check date constraint (trigger)(mysql 检查日期约束(触发器))
本文介绍了mysql 检查日期约束(触发器)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Sorry for disturbing again, I completely new on MySql Maria DB (maybe on trigger as well) and looking to add check function to ensure no past date is inserted in this table. I believe that the only way to do it Mysql is to create a trigger. I have tried to create one and I keep on having problems. Can someone tell me what I am doing wrong here (maybe I need a strong coffee):

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

Please that i'm on a terminal. Every time the system sees a semicolon it ends my query. I cannot therefore have 2 semicolons.

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

thanks for your help . I hope im clear enough...

推荐答案

查询前需要更改分隔符:

You need to change delimiter before the query:

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 语句

Also, end your IF statement before you END the entire block of code to execute for an event(trigger)

这篇关于mysql 检查日期约束(触发器)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)
SQL/MySQL: split a quantity value into multiple rows by date(SQL/MySQL:按日期将数量值拆分为多行)