TRIGGER 语法错误 mysql 说 #1303 - 无法从另一个存储的例程中创建触发器 - phpmyadmin
Posted
技术标签:
【中文标题】TRIGGER 语法错误 mysql 说 #1303 - 无法从另一个存储的例程中创建触发器 - phpmyadmin【英文标题】:TRIGGER synax error mysql said #1303 - Can't create a trigger from within another stored routine - phpmyadmin 【发布时间】:2019-05-28 16:23:54 【问题描述】:我有一个名为“autoad”的数据库表,2 列是“allads”和“finished”,我想在更新查询之前执行 chek if value(finished) > value(allads) 然后抛出异常,我使用了触发器为此,但是当 pat 进入 phpmyadmin 时会出现错误: mysql 说 #1303 - 无法从另一个存储的例程中创建触发器
CREATE TRIGGER before_insert_finished BEFORE INSERT ON autoad
FOR EACH ROW
BEGIN
SET @CountOfCar = (SELECT allads FROM autoad)
SET @CountOfCar2 = (SELECT finished FROM autoad
IF @CountOfCar2>@CountOfCar THEN
ON UPDATE NO ACTION
END
已编辑:
在 phpmyadmin gui 中只想要代码主体,在 begin....end
之间,我现在尝试:
BEGIN
SET @CountOfCar = (SELECT allads FROM autoad)
SET @CountOfCar2 = (SELECT finished FROM autoad
IF @CountOfCar2>@CountOfCar THEN
ON UPDATE NO ACTION
END
错误: MySQL 说:#1064 - 你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 3 行的 'SET @CountOfCar2 = (SELECT finished FROM autoad IF @CountOfCar2>@CountOfCar ' 附近使用正确的语法
【问题讨论】:
【参考方案1】:在 phpMyAdmin GUI 中创建触发器时,只需在“定义”面板中的 BEGIN ... END
部分之间输入触发器的主体即可。
Image
【讨论】:
谢谢,但还是说错误,新代码已编辑,如果您了解正确的语法,请指导我。 你在(SELECT finished FROM autoad
之后缺少)
以上是关于TRIGGER 语法错误 mysql 说 #1303 - 无法从另一个存储的例程中创建触发器 - phpmyadmin的主要内容,如果未能解决你的问题,请参考以下文章