`
lzj0470
  • 浏览: 1263730 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it

阅读更多
如果你在触发器里面对刚刚插入的数据进行了 insert/update, 则出现这个问题。因为会造成循环的调用.

create trigger test
before update on tablename
for each row
  update tablename set NEW.content = '' where id=NEW.ID;
END



应该使用set操作,而不是在触发器里使用 update,比如

create trigger test
before update on tablename
for each row
set NEW.content = '';
END


接下来,根据我的应用进行描述一下:
我的需求是表A插入一条数据,同步到表B。同步之后,更新表A的某个字段。
DELIMITER $$
CREATE
    TRIGGER triggername BEFORE INSERT
    ON tableA
    FOR EACH ROW BEGIN
      insert into tableB(content) values(new.content);
      set new.content='';
    END$$
DELIMITER ;
分享到:
评论

相关推荐

    Mysql触发器介绍

    ### MySQL触发器详解 #### 一、引言 MySQL 的触发器与存储过程类似,都是内嵌于数据库的一种编程机制。触发器的概念最早出现在 MySQL 5.0 版本中,这一特性使得开发者能够编写自动化的数据库操作逻辑,用于响应...

    mysql触发器的作用及语法

    ### MySQL触发器的作用及语法详解 #### 一、触发器的概念 触发器是一种特殊类型的存储过程,它在特定的数据库事件(如数据插入、更新或删除)发生时自动执行。触发器增强了数据库的安全性和完整性控制,能够实现比...

    mysql触发器.pdf

    【MySQL触发器详解】 MySQL触发器是数据库管理系统中的一种重要特性,它允许用户在特定的数据库操作(如INSERT、UPDATE或DELETE)发生之前或之后自动执行预定义的SQL语句。这种特性使得数据库能实现更复杂的业务...

    mysql触发器及相关代码示例

    触发器不是通过直接调用执行的,而是由特定的数据表上的事件触发,如插入(INSERT)、更新(UPDATE)或删除(DELETE)等操作。 触发器的主要特点是其内部的SQL语句作为一个事务处理,这意味着所有操作要么全部成功...

    mysql触发器语法简介[归类].pdf

    例如,你可以创建一个在数据更新前验证数据的触发器,或者在数据更新后更新相关联的记录。 3. **事件**:触发器可以响应三种主要的DML(数据操纵语言)事件:INSERT、UPDATE和DELETE。这意味着当向表中添加新记录、...

    第12章MySQL触发器与事件.docx

    MySQL触发器和事件是数据库管理系统中的重要特性,用于在特定数据操作发生时自动执行预定义的任务,以此实现数据的完整性、一致性以及业务规则的自动执行。以下是对这些知识点的详细解释: 1. **触发器(Triggers)...

    MySQL触发器使用详解

    触发器是一种与表操作有关的数据库对象,当触发器所在表上出现指定事件时,将调用该对象,即表的操作事件触发表上的触发器的执行。 创建触发器 在MySQL中,创建触发器语法如下: 代码如下: CREATE TRIGGER trigger_...

    循环某数据库所有表,自动创建触发器

    本教程将深入讲解如何针对一个数据库中的所有表自动创建`CreatedAt`字段的触发器,以记录每个表中数据的创建时间。 首先,我们需要了解触发器的基本语法。在SQL中,创建触发器通常使用`CREATE TRIGGER`语句。触发器...

    数据库原理及应用MySQL-触发器部分的知识点整理

    1. **概念**:触发器(Trigger)是MySQL提供的一种数据库对象,它在满足特定条件(如数据修改)时自动执行,以确保业务规则得到遵循。 2. **特点**:触发器的执行不依赖于程序调用,而是由数据库事件触发,如对表的...

    MySql触发器

    其中,`trigger_name`是触发器的名称,`trigger_time`是触发时间(BEFORE或AFTER),`trigger_event`是触发事件(INSERT、UPDATE或DELETE),`tbl_name`是相关表的名称,`trigger_stmt`是触发时执行的SQL语句。...

    mysql 批量更新及效率对比

    MySQL 批量更新的高效方法 MySQL 批量更新是指在 MySQL 数据库中批量更新多条记录的操作。这种操作在实际应用中非常常见,例如批量更新用户信息、订单状态等。然而,批量更新的效率问题一直是一个棘手的问题。近期...

    mysql触发器(Trigger)简明总结和使用实例

    MySQL触发器是数据库管理系统中的一个重要概念,主要用于在特定的数据操作(如INSERT、UPDATE或DELETE)发生时自动执行预定义的SQL语句。触发器可以增强数据的完整性和一致性,实现复杂的业务逻辑,而无需在应用程序...

    如何制定自己的SQL Server 2000触发器

    也可以在企业管理器中重命名触发器,在表上点右键->“所有任务”->“管理触发器”,选中所要重命名的触发器,修改触发器语句中的触发器名称,点击“确定”。 三、删除触发器 可以使用 DROP TRIGGER 语句删除触发器...

    mysql中经典的触发器语法及相关配置

    - **错误处理**: 如果尝试在不同数据库的表上创建触发器,将会出现错误`[Err] 1435 - Trigger in wrong schema`。 - **复合语句**: 当触发器主体包含多条SQL语句时,需要使用BEGIN...END块将它们包围,并且在BEGIN后...

    MySQL的SQL语法.pdf

    - **数据更新**: - `UPDATE tbl_name SET column1 = value1, column2 = value2 WHERE condition;` - 示例:`UPDATE students SET age = 21 WHERE id = 1;` - **数据删除**: - `DELETE FROM tbl_name WHERE ...

    mysql高级部分--包含索引建立优化_函数_存储过程_触发器_及游标

    - 过多的索引会影响数据更新的性能。 **索引类型:** - **普通索引:** 没有任何限制的基本索引类型。 - **唯一索引:** 索引列的值必须唯一,允许存在空值。 - **主键索引:** 特殊的唯一索引,不允许存在空值,...

    MYSQL数据库的索引、视图、触发器、游标和存储过程.pdf

    MySQL触发器可以响应表上的`INSERT`、`UPDATE`和`DELETE`等操作。创建触发器的基本语法为: ```sql CREATE [DEFINER={user|CURRENT_USER}] TRIGGER {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON table_name FOR EACH ...

    tbl.zip_.tbl_GUI table_TBL_Table

    1. **创建table数据结构**:在MATLAB中,我们可以使用`table`函数来创建一个新表,指定列名、数据类型和数据值。例如: ```matlab colNames = {'ColumnName1', 'ColumnName2'}; data = [1, 2; 3, 4]; tbl = ...

Global site tag (gtag.js) - Google Analytics