我的mysql版本是8.0.13,使用的是Mysql workbench
我的目的是当sage小于15时抛出警告
create trigger trStudent before update
on student for each row
begin
if new.sage <15 then
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT='asd';
END IF;
end
以上代码有一些错误
但是只要删掉begin和if语句就没有问题了
如下
create trigger trStudent before update
on student for each row
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT='asd';
这是为什么?
还有我在网上复制粘贴的Mysql 的触发器代码都有语法问题,这是mysql版本的问题吗?如果是我应该怎么写?
建议去mysql官网查一下文档看能找到不,我把你的代码复制到我这里,执行没问题。我的版本是5
begin和if都删除了,那还执行什么,,,
错误提示:声明不完整
检查一下,你表中定义的字段名等等,是否存在或者有误
原来改成这样就可以了。。。
估计是MySQL不能识别带分号的块。。。
只要把结束符改成别的东西就好了
delimiter //
create trigger trStudent before update
on student for each row
begin
if new.sage <15 then
SIGNAL SQLSTATE 'HY000' SET MESSAGE_TEXT='asd';
END IF;
end//
delimiter ;