MySQL创建触发器思路-Ubuntu

1.为要创建的触发器创建表

         

2.创建触发器

   create trigger before_one_update before update on one for each row begin insert into trigger_one set action='update',name=OLD.name,num=OLD.num,changedate=NOW();end;\g

 

MySQL5.7.2+版本之前,您只能为表中的事件创建一个触发器,例如,只能为BEFORE UPDATEAFTER UPDATE事件创建一个触发器。 MySQL 5.7.2+版本解决了这样限制,并允许您为表中的相同事件和动作时间创建多个触发器。当事件发生时,触发器将依次激活。        

果表中有相同事件有多个触发器,MySQL将按照创建的顺序调用触发器。

要更改触发器的顺序,需要在FOR EACH ROW子句之后指定FOLLOWSPRECEDES。如下说明 -

  • FOLLOWS选项允许新触发器在现有触发器之后激活。
  • PRECEDES选项允许新触发器在现有触发器之前激活————————————————————————————————————————————————————

触发器管理:包括在MySQL数据库中显示,修改和删除触发器

      https://www.yiibai.com/mysql/managing-trigger-in-mysql.html

       要修改触发器,必须首先删除它并使用新的代码重新创建。在MySQL中没有类似:ALTER TRIGGER语句,因此,您不能像修改其他数据库对象,如视图存储过程那样修改触发器。

查询某一特定表的触发器:此方法适用于触发器命名中包含表名

    show triggers like '表名';

  或者:

       要获取与特定表相关联的所有触发器,可以使用SHOW TRIGGERS语句中的WHERE子句。 以下语句返回与employees表相关联的所有触发器:

SHOW TRIGGERS FROM yiibaidb
WHERE `table` = 'employees';

SQL

请注意,我们使用反引号包装table列,因为table是MySQL中的保留关键字。

### 关于 PGC 的澄清 对于提到的 "PGC",似乎存在一些混淆。通常情况下,“PGC” 并不是 PostgreSQL 或其生态系统中的标准术语或组件。如果意图是指与 PostgreSQL 相关的特定工具或扩展,则可能指的是其他具体的项目或软件包。 在官方文档和支持资源中,并未找到名为 “PGC”的 PostgreSQL 兼容编译器的相关记录[^1]。然而,PostgreSQL 社区提供了多种开发工具和接口来支持不同编程语言的应用程序连接到数据库服务器。这些工具包括但不限于: - **PL/pgSQL**: 这是一种过程化语言,允许用户编写复杂的存储函数和触发器逻辑。 - **libpqxx (C++ 接口)**: 提供 C++ 应用程序访问 PostgreSQL 数据库的功能。 - **psycopg2 (Python 接口)**: Python 编程语言的一个适配器,用于与 PostgreSQL 工作。 假设这里所指的可能是某种形式的过程语言或者是用来增强 SQL 功能的语言特性,那么可以考虑安装 PL/Perl, PL/Tcl, 或者更常见的 PL/pgSQL 来作为替代方案之一。 如果有具体的需求指向某个特别版本或者类型的编译器,请提供更加详细的描述以便给出更为精确的帮助。 ### 安装 PL/pgSQL 示例 为了展示如何添加额外的支持给 PostgreSQL,以下是关于如何启用并使用 PL/pgSQL 扩展的例子: ```bash sudo -u postgres psql CREATE EXTENSION IF NOT EXISTS plpgsql; \q ``` 这段脚本会切换至 `postgres` 用户身份执行命令,创建一个新的扩展(如果尚未存在的话),最后退出交互模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值