Php 我希望触发器能够在mysql中的日期小于当前日期时更改值
这是我的扳机,但我一直收到这个错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第6行“”附近要使用的正确语法Php 我希望触发器能够在mysql中的日期小于当前日期时更改值,php,mysql,Php,Mysql,这是我的扳机,但我一直收到这个错误 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以获取第6行“”附近要使用的正确语法 CREATE TRIGGER check_date BEFORE INSERT ON rooms FOR EACH ROW BEGIN UPDATE rooms SET end_date = NULL, start_date = NULL, availabilty=y WHERE end_date < curdate(); END; 创
CREATE TRIGGER check_date
BEFORE INSERT ON rooms
FOR EACH ROW
BEGIN
UPDATE rooms
SET end_date = NULL, start_date = NULL, availabilty=y WHERE end_date < curdate();
END;
创建触发器检查\u日期
在插入房间之前
每行
开始
更新房间
设置end_date=NULL,start_date=NULL,availability=y,其中end_date
y
可能不是表中的一列。如果您指的是字符串'y'
,则应将其置于单引号中
availabilty='y'
还要注意,Availability包含一个输入错误。正确的英文拼写是可用的,但我当然不知道您的列名。在MySql中,您不能对应用触发器的表发出DML语句。但您可以使用
NEW
关键字修改正在插入(或更新)的记录列的值(仅适用于事件之前的)
试一试
分隔符$$
创建触发器检查日期
在插入房间之前
每行
开始
如果NEW.end_date
这里是演示。Makeavailability='y'
我已经这样做了,仍然得到相同的错误我像你说的那样更改了y,但是仍然得到相同的错误,是的availability是我的列名。你认为我也应该把空值放在引号中吗?不,空值不应该被引用。