Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在触发器(phpmyadmin)中显示错误消息_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql 如何在触发器(phpmyadmin)中显示错误消息

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

我想创建一个触发器,防止用户在已过的日期预订会话(例如:如果今天的日期是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 '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约束,而不是使用触发器。