iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 触发器中的“FOR EACH ROW”如何工作?
  • 502
分享到

MySQL 触发器中的“FOR EACH ROW”如何工作?

2023-10-22 10:10:47 502人浏览 泡泡鱼
摘要

实际上“FOR EACH ROW”意味着更新或删除的每个匹配行。换句话说,我们可以说触发器并不应用于每一行,它只是说对每个受影响的表行执行触发器主体。我们可以通过以下示例来说明这一点 -示例在此示例中,我们创建两个表,Sample 和 Sa

实际上“FOR EACH ROW”意味着更新或删除的每个匹配行。换句话说,我们可以说触发器并不应用于每一行,它只是说对每个受影响的表行执行触发器主体。我们可以通过以下示例来说明这一点 -

示例

在此示例中,我们创建两个表,Sample 和 Sample_rowaffected,如下 -

Mysql> Create table Sample(id int, value varchar(20));
Query OK, 0 rows affected (0.47 sec)

mysql> Insert into Sample(id, value) values(100, 'same'),(101,
'Different'),(500, 'excellent'),(501, 'temporary');
Query OK, 4 rows affected (0.04 sec)
Records: 4 Duplicates: 0 Warnings: 0

mysql> Select * from Sample;
+------+-----------+
| id   | value     |
+------+-----------+
| 100  | same      |
| 101  | Different |
| 500  | excellent |
| 501  | temporary |
+------+-----------+
4 rows in set (0.00 sec)

mysql> Create table Sample_rowaffected(id int);
Query OK, 0 rows affected (0.53 sec)

mysql> Select Count(*) as ‘Rows Affected’ from sample_rowaffected;
+---------------+
| Rows Affected |
+---------------+
|             0 |
+---------------+
1 row in set (0.10 sec)

现在,我们将创建一个触发器,该触发器在删除表“Sample”中的任何值之前触发,如下所示 -

mysql> Delimiter //
mysql> Create trigger trigger_before_delete_sample BEFORE DELETE on
Sample
    -> FOR EACH ROW
    -> BEGIN
    -> SET @count = if (@count IS NULL, 1, (@count+1));
    -> INSERT INTO sample_rowaffected values (@count);
    -> END ;
    -> //
Query OK, 0 rows affected (0.15 sec)
mysql> Delimiter ;

现在,以下查询将从表“Sample”中删除一些值,并且删除的行数将存储在 @count 用户变量中 -

mysql> Delete from Sample WHERE ID >=500;
Query OK, 2 rows affected (0.11 sec)

mysql> Select @count;
+--------+
| @count |
+--------+
|      2 |
+--------+
1 row in set (0.03 sec)

借助以下查询,我们可以检查受删除影响的行的值,插入到sample_rowaffected表中,如下 -

mysql> Select Count(*) as 'Rows Affected' from sample_rowaffected;
+---------------+
| Rows Affected |
+---------------+
|             2 |
+---------------+
1 row in set (0.00 sec)

mysql> Select * from Sample;
+------+-----------+
| id   | value     |
+------+-----------+
| 100  | same      |
| 101  | Different |
+------+-----------+
2 rows in set (0.00 sec)

在上面的示例的帮助下,很明显“FOR EACH ROW”意味着更新或删除的每个匹配行。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 触发器中的“FOR EACH ROW”如何工作?

本文链接: https://www.lsjlt.com/news/436796.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 触发器中的“FOR EACH ROW”如何工作?
    实际上“FOR EACH ROW”意味着更新或删除的每个匹配行。换句话说,我们可以说触发器并不应用于每一行,它只是说对每个受影响的表行执行触发器主体。我们可以通过以下示例来说明这一点 -示例在此示例中,我们创建两个表,Sample 和 Sa...
    99+
    2023-10-22
  • mysql触发器的工作原理是什么
    MySQL触发器是一种特殊类型的存储过程,它在指定的事件发生时自动执行。触发器可以在数据库表中的数据发生更改之前、之后或替代发生更改...
    99+
    2023-10-12
    mysql
  • SAP工作流触发该如何理解
    今天就跟大家聊聊有关SAP工作流触发该如何理解,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。通常,SAP 工作流触发途径很多。比如,我们可以通过调用标准业务对象触发事件,或是根据状态...
    99+
    2023-06-05
  • mysql触发器如何写
    这篇文章主要介绍了mysql触发器如何写,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。触发器是与 MySQL 数据表有关的数据库对象,在满足定义...
    99+
    2024-04-02
  • MySQL如何创建触发器
    本文实例为大家分享了MySQL创建触发器的具体代码,供大家参考,具体内容如下 先来个实例: #建表 DROP TABLE IF EXISTS t_attendance; CREATE TABLE...
    99+
    2024-04-02
  • mysql触发器如何实现
    小编给大家分享一下mysql触发器如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!MySQL触发器语法详解:触发器 tri...
    99+
    2024-04-02
  • mysql触发器如何取消
    这篇“mysql触发器如何取消”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql触发...
    99+
    2024-04-02
  • oracle中触发器的作用
    oracle 中的触发器自动执行数据库事件中的特定动作,包括:确保数据完整性自动化任务增强安全性实现业务逻辑 Oracle 中触发器的作用 触发器是 Oracle 中的一种数据库对象,...
    99+
    2024-05-09
    oracle
  • 如果 MySQL 中存在触发器,则删除触发器?
    要删除触发器,请使用DROP命令。语法如下 −DROP TRIGGER IF EXISTS yourTriggerName;为了理解上述语法,您需要在当前数据库中有一个触发器。要检查触发器是否存在,您可以使用以下查询。我们的数据库中有一个触...
    99+
    2023-10-22
  • MySQL触发器如何使用
    本文小编为大家详细介绍“MySQL触发器如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL触发器如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。MySQL—触发器将两个关...
    99+
    2023-07-05
  • mysql触发器之触发器的增删改查操作示例
    本文实例讲述了mysql触发器之触发器的增删改查操作。分享给大家供大家参考,具体如下: 我们在创建触发器后,可以在包含触发器定义文件的数据文件夹中显示其定义。触发器作为纯文本文件存储在以下数据库文件夹中: ...
    99+
    2024-04-02
  • sql触发器的工作原理是什么
    SQL触发器是一种特殊的存储过程,它会在数据库表的某个特定事件发生时自动触发执行。触发器能够对表的INSERT、UPDATE、DEL...
    99+
    2023-10-25
    sql
  • 如何在 PHP 中使用 MySQL 触发器?
    在 php 中使用 mysql 触发器需要:创建触发器:使用 sql create trigger 语句在数据库中创建触发器。触发触发器:使用 mysqli_query() 函数执行触发...
    99+
    2024-05-12
    mysql php
  • mysql触发器的作用是什么
    本篇内容介绍了“mysql触发器的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明在写数据之前,可以强制检查或转换数据等。触发器...
    99+
    2023-06-20
  • mysql触发器之创建多个触发器操作的示例分析
    这篇文章将为大家详细讲解有关mysql触发器之创建多个触发器操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。这次记录的内容mysql 版本必须得是5.7.2+...
    99+
    2024-04-02
  • cosmosdb 的计时器触发器无法正常工作
    问题内容 我对我的函数应用“timertrigger”有疑问。 我开发了此功能来与 telegram 机器人进行通信,以便在 api 请求后发送消息。 我在本地尝试过该功能应用程序,效...
    99+
    2024-02-22
  • 如何在MySQL触发器中使用参数
    如何在MySQL触发器中使用参数,需要具体代码示例 MySQL是一种流行的关系型数据库管理系统,它支持触发器来监控表中数据的变化并执行相应的操作。触发器可以在INSERT、UPDATE...
    99+
    2024-04-02
  • 如何实现MySQL中删除触发器的语句?
    如何实现MySQL中删除触发器的语句?在MySQL数据库中,触发器(Trigger)是一种与表相关联的特殊类型的存储过程,它能在表发生特定的操作时被自动触发执行。MySQL提供了创建和删除触发器的语法,通过删除已存在的触发器,我们可以灵活地...
    99+
    2023-11-08
    MySQL 删除触发器
  • 如何正确的使用MySQL触发器
    如何正确的使用MySQL触发器?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.触发器是什么?一类特殊的数据库程序,可以监视某种数据的操作(insert/updat ...
    99+
    2023-06-06
  • 一文带你了解MySQL中触发器的操作
    目录概述介绍触发器的特性操作—创建触发器操作—new和old操作—查看触发器操作—删除触发器注意事项概述 介绍 触发器,就是一种特殊的存储过程。触发器和存储过程一样是一个能...
    99+
    2023-02-17
    MySQL触发器操作 MySQL触发器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作