Mysql 如何在触发器(phpmyadmin)中显示错误消息
我想创建一个触发器,防止用户在已过的日期预订会话(例如:如果今天的日期是2018年8月23日,则他无法在2018年8月22日预订日期) 在MySQL Workbench中,我成功地做到了这一点:Mysql 如何在触发器(phpmyadmin)中显示错误消息,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我想创建一个触发器,防止用户在已过的日期预订会话(例如:如果今天的日期是2018年8月23日,则他无法在2018年8月22日预订日期) 在MySQL Workbench中,我成功地做到了这一点: DELIMITER $$ CREATE TRIGGER checkDate BEFORE INSERT ON ordination.session FOR EACH ROW BEGIN IF (NEW.session_date<CURDATE()) THEN SIGNAL SQLSTATE '45
DELIMITER $$
CREATE TRIGGER checkDate
BEFORE INSERT ON ordination.session
FOR EACH ROW
BEGIN
IF (NEW.session_date<CURDATE()) THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT='Can not book a session on a date which has passed';
END IF;
END;
$$
分隔符$$
创建触发器检查日期
在插入之前,请先插入
每行
开始
IF(NEW.session_date我犯了一个很大的错误。我经常将代码粘贴到phpmyadmin的错误部分。我应该使用“SQL”,而不是使用上部导航栏中的“触发器”部分分区并将代码粘贴到那里。当我将代码粘贴到该区域时,它工作得非常好。这解决了我的问题。您可以发布您看到的phpmyadmin错误吗?使用选择版本()
MariaDB是一个MySQL分支,有一些例外,比如支持CHECK
constraints(),所以你可以使用CHECK约束,而不是使用触发器。