无法在MySQL上创建触发器

休·丁·安(Huynh Dinh An)
enter code hereCREATE 
/*!50017 DEFINER = 'root'@'localhost' */ 
TRIGGER `update_bug_question_number_after_insert` AFTER INSERT ON `work_item` 
FOR EACH ROW BEGIN 
    SET @m_last_number := 0; 
IF (NEW.type = 1) THEN 
    BEGIN 
        SELECT last_bug_number FROM work_item WHERE id = NEW.parent_work_item_id INTO @m_last_number; 
        IF @m_last_number IS NULL THEN 
            SET @m_last_number = 0; 
        /* inscrease last bug number */ 
        SET @m_last_number = @m_last_number + 1; 
        /* update last bug number parent work item*/ 
        UPDATE work_item SET last_bug_number = @m_last_number WHERE id = NEW.parent_work_item_id; 
        /* update bug number current work item*/ 
        UPDATE work_item SET bug_number = @m_last_number WHERE id = NEW.id; 
    END 
ELSE IF (NEW.type - 4) THEN 
    BEGIN 
        SELECT last_question_number FROM work_item WHERE id = NEW.parent_work_item_id INTO @m_last_number; 
        IF @m_last_number IS NULL THEN 
            SET @m_last_number = 0; 
        /* inscrease last bug number */ 
        SET @m_last_number = @m_last_number + 1; 
        /* update last bug number parent work item*/ 
        UPDATE work_item SET last_question_number = @m_last_number WHERE id = NEW.parent_work_item_id; 
        /* update bug number current work item*/ 
        UPDATE work_item SET question_number = @m_last_number WHERE id = NEW.id; 
    END 
END;

消息显示:

12 queries executed, 2 success, 10 errors, 0 warnings

查询:CREATE 0017 DEFINER ='root'@'localhost'* /为EAupdate_bug_question_number_after_insert插入后触发触发work_item...

错误代码:1064您的SQL语法中有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册以获取在第5行的''附近使用的正确语法

执行时间:0秒传输时间:0秒

总时间:0秒

查询:如果(NEW.type = 1),则从id为NEW.parent_work_item_id的work_item中选择last_bug_number到@m_last_number中

错误代码:1064您的SQL语法中有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册以在'if(NEW.type = 1)附近使用正确的语法,然后从第1行开始选择last_bug_number from work_it'

执行时间:0秒传输时间:0秒

总时间:0秒

查询:如果@m_last_number为null,则SET @m_last_number = 0

错误代码:1064您的SQL语法中有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册,以获取在'如果@m_last_number为null,然后在第1行SET @m_last_number = 0'附近使用正确的语法

执行时间:0秒传输时间:0秒

总时间:0秒

查询:SET @m_last_number = @m_last_number +1

受影响的0行

执行时间:0秒传输时间:0秒

总时间:0秒

查询:更新work_item设置last_bug_number = @m_last_number,其中id = NEW.parent_work_item_id

错误代码:1054“ where子句”中的未知列“ NEW.parent_work_item_id”

执行时间:0秒传输时间:0秒

总时间:0秒

查询:UPDATE work_item SET bug_number = @m_last_number WHERE id = NEW.id

错误代码:1054“ where子句”中的未知列“ NEW.id”

执行时间:0秒传输时间:0秒

总时间:0秒

查询:结束ELSE IF(NEW.type-4),然后从work_item WHERE id = NEW.parent_work_item_id INTO @m_last开始选择last_question_number ...

错误代码:1064您的SQL语法中有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在“ end ELSE IF(NEW.type-4)”附近使用,然后在第1行开始SELECT last_question_num

执行时间:0秒传输时间:0秒

总时间:0秒

查询:如果@m_last_number是NULL,则设置@m_last_number = 0

错误代码:1064您的SQL语法中有错误;请参见表11。在第1行的'IF @m_last_number IS NULL THEN SET @m_last_number = 0'附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法

执行时间:0秒传输时间:0秒

总时间:0秒

查询:SET @m_last_number = @m_last_number +1

受影响的0行

执行时间:0秒传输时间:0秒

总时间:0秒

查询:UPDATE work_item SET last_question_number = @m_last_number WHERE ID = NEW.parent_work_item_id

错误代码:1054“ where子句”中的未知列“ NEW.parent_work_item_id”

执行时间:0秒传输时间:0秒

总时间:0秒

查询:UPDATE work_item SET question_number = @m_last_number WHERE id = NEW.id

错误代码:1054“ where子句”中的未知列“ NEW.id”

执行时间:0秒传输时间:0秒

总时间:0秒

查询:END结束

错误代码:1064您的SQL语法中有错误;请参见表11。检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ end END”附近使用

执行时间:0秒传输时间:0秒总时间:0秒

维朱纳夫·瓦斯蒂夫(Vijunav Vastivch)

尝试这种方式:

DELIMITER $$
/*!50017 DEFINER = 'root'@'localhost' */ 
create TRIGGER `update_bug_question_number_after_insert` AFTER INSERT ON `work_item` FOR EACH ROW 

BEGIN 
    SET @m_last_number := 0; 
IF (NEW.type = 1) THEN 

        SELECT last_bug_number FROM work_item WHERE id = NEW.parent_work_item_id INTO @m_last_number; 
        IF @m_last_number IS NULL THEN 
            SET @m_last_number = 0; 
        /* inscrease last bug number */ 
        SET @m_last_number = @m_last_number + 1; 
        /* update last bug number parent work item*/ 
        UPDATE work_item SET last_bug_number = @m_last_number WHERE id = NEW.parent_work_item_id; 
        /* update bug number current work item*/ 
        UPDATE work_item SET bug_number = @m_last_number WHERE id = NEW.id; 
  END IF;
ELSEIF  (NEW.type - 4) THEN 

        SELECT last_question_number FROM work_item WHERE id = NEW.parent_work_item_id INTO @m_last_number; 
        IF @m_last_number IS NULL THEN 
            SET @m_last_number = 0; 
        /* inscrease last bug number */ 
        SET @m_last_number = @m_last_number + 1; 
        /* update last bug number parent work item*/ 
        UPDATE work_item SET last_question_number = @m_last_number WHERE id = NEW.parent_work_item_id; 
        /* update bug number current work item*/ 
        UPDATE work_item SET question_number = @m_last_number WHERE id = NEW.id; 


      END IF;
  END IF;
END;
$$
DELIMITER ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

恢复MySQL数据库时出现“无法在系统表上创建触发器”错误

来自分类Dev

如何在新行上创建触发器mysql?

来自分类Dev

我无法在mysql上获得运行触发器

来自分类Dev

在Oracle上创建触发器

来自分类Dev

在系统日志上创建触发器

来自分类Dev

MySQL创建触发器语法

来自分类Dev

在插入时创建MySQL触发器

来自分类Dev

查询以在mysql中创建触发器

来自分类Dev

MySQL触发器创建失败

来自分类Dev

Laravel,从迁移创建MySQL触发器

来自分类Dev

插入前创建Mysql触发器

来自分类Dev

MYSQL触发器创建ID

来自分类Dev

创建触发器mysql错误

来自分类Dev

插入前创建Mysql触发器

来自分类Dev

在MySQL中创建触发器并更新

来自分类Dev

错误MySQL创建触发器

来自分类Dev

未创建 MYSQL 触发器

来自分类Dev

在 MySQL 中创建通用触发器

来自分类Dev

MySQL触发器将无法保存

来自分类Dev

MySQL触发器无法正常工作

来自分类Dev

从mysqldump创建的SQL还原后,出现错误1465“无法在系统表上创建触发器”

来自分类Dev

从sqlalchemy插入数据后,如何在MySQL上创建UUID触发器?

来自分类Dev

Oracle触发器创建-表正在变异;触发器可能无法读取或修改

来自分类Dev

创建触发器-声明变量-无法使我的触发器起作用

来自分类Dev

MySQL触发器创建计时器

来自分类Dev

MySQL创建简单的触发器问题(MySQL中的菜鸟)

来自分类Dev

PL / SQL触发器:无法创建顶点用户

来自分类Dev

无法创建触发器以插入concat值

来自分类Dev

创建After Insert触发器后无法插入表