当前位置: 首页 > 面试题库 >

触发错误

东方高洁
2023-03-14
问题内容

好吧,我已经研究并没有找到以下问题的解决方法`’SQL Error (1442): Can not update table’ messages’ in
stored function / trigger because it is already used by statement Which
invoked this stored function / trigger.``

我的触发器已创建,仅当我在消息表上运行INSERT时,才会引发此错误,我的触发器是

DELIMITER $$ 
DROP TRIGGER IF EXISTS `onMessage` ;
CREATE TRIGGER `onMessage` BEFORE INSERT ON `messages` FOR EACH ROW 
BEGIN
       UPDATE `users` SET `users`.`messages` = ( `users`.`messages` + 1 ) 
       WHERE `users`.`uid` = NEW.uid ;
       DELETE FROM `messages` WHERE `date` < ( NOW( ) - INTERVAL 1 MINUTE ) ;
END ;
$$
DELIMITER ;

问题答案:

这是使用触发器的限制。

从MySql文档中:

在存储的函数或触发器内,不允许修改调用该函数或触发器的语句已经在使用(用于读取或写入)的表。



 类似资料:
  • void trigger_error(string error_msg, [int level]) This function can be used to output an error message using Smarty. level parameter can be one of the values used for trigger_error() PHP function, i.e

  • 嗨,我正在将我的所有表从一个数据库导入到另一个数据库,但不知何故,触发器没有被导入。使用MySQL5.6。所以我试图从以前的数据库中复制触发器语句来创建当前数据库中的触发器。分隔符$$ 我在工作台的输出部分中得到的错误 知道我做错了什么吗

  • 问题内容: 如果我 在表上有,如何抛出错误以阻止对该表进行更新? 问题答案: 这是一种可行的技巧。这不是干净的,但看起来可能可行: 本质上,您只是尝试更新不存在的列。

  • 我在WordPress数据库中编写了一个MySQL触发器&它给出了一个错误。我的触发器代码如下: 它会给出以下错误消息: 错误 SQL查询:文档 CREATE[DEFINER={user CURRENT_USER}]trigger up_trig AFTER INSERT ON每一行BEGIN DECLARE“选择DISTINCT()INTOFROM其中='panchayat_id'和=new。(

  • 你好 我正在Salesforce内部为trigger进行单元测试,我不断遇到一个似乎无法解决的错误,所以我希望有更多经验的人能帮助我回到正轨。我已经在Google上搜索过很多次了,我的代码结构也被弄乱了,但我找不到解决方案。 目的: 我的任务是编写一个触发器,该触发器将处理维护每个开发人员的案例排名所需的逻辑。每个开发人员都被分配了案例,这些案例可能有也可能没有由业务确定的优先级。每个开发人员在任

  • 问题内容: 我创建了一个触发器,如下所示: 我正在尝试在Trigger_1中插入一行 它给了我错误: 谁能帮忙吗? 问题答案: 只需删除 从触发代码。在正在进行的事务中触发执行,因此您无法进行单独的提交。提交事务后,您在trigger_2中的插入也将提交。