首页 > 数据库 >MYSQL-->触发器

MYSQL-->触发器

时间:2022-10-09 15:00:43浏览次数:54  
标签:触发 触发器 old insert -- update MYSQL new

介绍

触发器是与表有关的数据项,指在insert/update/delete 之前或之后,出发并执行触发器中定义的SQL语句集合。

触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。

使用别名oldnew来引用触发器中发生变化的记录内容,这与其他的数据是类似的。

现在触发器只支持行级触发,不支持语句级触发。

行级触发-->五条记录被修改,触发5次

语句级触发-->执行一次update等操作不管影响多少行,都只触发一次

触发器类型

触发器类型 New和old
insert型触发器 new表示将要,或者已经新增的数据
update型触发器 old表示修改之前的数据,new表示将要或者已经修改后的数据
delete型触发器 old表示将要或者已经删除的数据

触发器语法

创建触发器

create tigger 触发器名
before/after insert/update/delete
on 表名 for each row   
begin
	-->SQL逻辑;
end;
  1. or each row代表的是行级触发器

  2. 如果是要在增删改之前触发就选before
  3. 在增删改之后触发就选after
  4. insert/update/delete 代表的是触发器根据的是插入,更新,删除中其中一种作为触发方式
  5. mysql暂时只支持行级触发器

查看触发器

show triggers;

删除触发器

drop trigger [数据库名.]触发器名; #如果没有指定数据库名就默认为当前数据库

触发器的俩个参数old和new

当我们要获取比如说插入数据的id

new.id

要获取更新数据之前id值

old.id
  1. insert类型触发器只有new参数
  2. delete类型触发器只有old参数
  3. update类型触发器既有new参数也有old参数

标签:触发,触发器,old,insert,--,update,MYSQL,new
From: https://www.cnblogs.com/wdadwa/p/MYSQL_Learning_11.html

相关文章

  • ES Restful操作
    一、restful风格介绍二、索引增删改查1、增加索引命令:put索引名称/文档类型/文档idPUTtest/user/1{"name":"张三","age":12,"dec":"测试一下"}字段也是可以自己......
  • docker网络
    容器之间网络互通测试理解Docker0准备工作:清空所有的容器,清空所有的镜像dockerrm-f$(dockerps-a-q)#删除所有容器dockerrmi-f$(dockerimages-qa)#删除全部......
  • pyquery使用
    frompyqueryimportPyQueryaspqfromlxmlimportetreeimporturllib#d=pq("<html></html>")#d=pq(etree.fromstring("<html></html>"))#d=pq(url=your_url)#d=pq(......
  • 物联网开发平台,覆盖各行业物联应用场景
    物联网时代的到来,对工作于现场的机器设备提出了新的要求,即可异地远程监控减少现场维护,同时远程连接的安全性要得到保证,特别是新冠疫情以来,远程服务的需求大大增多。将设备接......
  • Git概述
    Git简介Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。Git仓库分为两种:本地仓库:开发人员自己电脑上的Git仓库。远程仓库:远程服务器上的......
  • Spring Cloud核心组件
    1、SpringCloud核心组件:Eureka2、Ribbon:Ribbon是一个基于HTTP和TCP的客户端负载均衡器,它可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到服务均衡......
  • 弄清 QObject —— 元对象模型的核心类
    概述QObject类不仅是所有Qt对象的基类,还是“Qt中的对象模型(ObjectModel)”的核心类。我们知道元对象模型最重要的功能就是“信号-槽”机制,该机制使Qt对象之间可以进......
  • 实验2:Open vSwitch虚拟交换机实践、实验3:OpenFlow协议分析实践
    实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通过Mininet的Pytho......
  • ArrayList源码学习
    arraylist1、总体关系图  1.1:Serializable接口这是一个空接口,只有实现了这个接口的对象才可以进行序列化。然后这个序列化id是为了保证反序列化成功也就是在运......
  • 003Java的诞生
    003Java的诞生1、计算机语言发展史(1)第一代语言机器语言我们都知道计算机的基本计算方式都是基于二进制的方式。二进制:010111001010110010110100这种代码是直接输......