MySQL数据库的触发器的使用

目录
  • 使用触发器
    • 触发器
    • 创建触发器
    • 删除触发器
    • 使用触发器
      • INSERT触发器
      • DELETE触发器
      • UPDATE触发器
  • 触发器的进一步介绍

使用触发器

触发器

发生什么事情之后或之前,会自动执行某条语句,这就是触发器

创建触发器

创建触发器要给出的4条关键信息:

  • 1.唯一的触发器名
  • 2.触发器关联的表
  • 3.触发器应该响应的活动(DELETE,INSERT or UPDATE)
  • 4.触发器何时执行(处理之前or之后)

CREATE TRIGGER语句创建触发器

CREATE TRIGGER newproduct AFTER INSERT ON products
FOR EACH ROW
SELECT 'Product added';

FOR EACH ROW 代码对每个插入行执行。

删除触发器

DROP TRIGGER newproduct;

使用触发器

INSERT触发器

INSERT触发器在INSERT语句执行之前或之后执行。需要知道一下几点:

  • 在INSERT触发器的代码内,可引用一个名为NEW 的虚拟表,访问被插入的行。
  • 在BEFORE INSERT触发器中,NEW中 的值也可以被更新(允许更改被插入的值)
  • 对于AUTO_INCREMENT列,NEW 在INSERT执行之前包含0,在INSERT执行之后包含新的自动生成值。
CREATE TEIGGER neworder  AFTER INSERT ON orders
FOR EACH ROW SELECT NEW.order_num;

这个触发器讲了咋个事情呢?你不要觉得云里雾里的,我们知道这个INSERT是不会显示什么信息出来的,所以我们加一个 AFTER INSERT

就是你只要一插入,我们就读出来这个订单号显示出来。就是这么一个功能,你不要想的太复杂了。所以你只能AFTER昂,BEFORE你能读出来个啥。

DELETE触发器

你也需要知道几点:

  • 在DELETE触发器的代码中,你可以引用一个名为OLD的虚拟表,访问被删除的行。
  • OLD中的值全都是只读,不能更新。

例:演示使用OLD保存将要删除的行到一个存档表中。

CREATE TRIGGER deleteorder BEFORE DELETE ON oreders
FOR EACH ROW
BEGIN
    INSERT INTO archive_orders(order_num,order_date,cust_id)
    VALUES(OLD.order_num,OLD.order_date,OLD.cust_id);
END;

UPDATE触发器

注意几点:

  • 在UPDATE触发器代码中,你可以引用一个OLD的虚拟表访问以前的值,引用一个名为NEW的虚拟表访问更新的值。
  • 在BEFORE UPDATE触发器中,NEW中的值可能也被更新
  • OLD中的全是只读的。

例:保证州名缩写总是大写

CREATE TRIGGER updatevendor BEFORE UPDATE ON vendors
FOR EACH ROW SET NEW.vend_state = Upper(New.vend_state); 

️这个例子我想说一下,它这个的话就意味着我们对这个NEW的改变是会影响到实际表中的。这点应该注意到。

触发器的进一步介绍

MySQL触发器是不支持CALL语句的,这是十分遗憾的,所需的存储过程的代码需要复制到触发器内。

到此这篇关于MySQL数据库的触发器的使用的文章就介绍到这了,更多相关MySQL触发器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL自定义函数及触发器

    目录 1. 存储函数(自定义函数) 1.1 定义存储函数 1.2 调用存储函数 1.3 删除存储函数 2. 触发器 2.1 触发器介绍 2.2 创建触发器 2.3 删除触发器 2.4 查看触发器 1. 存储函数(自定义函数) 自定义函数是一种对MySQL扩展的途径,其用法与内置的函数相同. 定义函数的两个必要条件:参数.返回值.函数可以返回任意类型的值,同样可以接收这些类型的参数. 关于函数体: 函数体是由合法的SQL语句构成. 函数体可以是简单的SELECT或INSERT语句. 函数体如果为符

  • Mysql中的触发器定义及语法介绍

    目录 1.定义: 2.语法: 3.删除触发器 4.查询触发器 5.触发器类型OLD和NEW的使用 1.定义: 触发器和存储过程相似,都是嵌入到 MySQL 中的一段程序.触发器是由事件来触发某个操作.当数据库执行这些事件时,就会激活触发器来执行相应的操作.这些事件称为触发条件,在MySQL中,有UPDATE,INSERT,和DELETE. 在MySQL中,目前只有UPDATE,INSERT,和DELETE这三种操作,才会触发触发器,其他操作都不支持触发器.这和Oracle中的触发器有很大的区别,

  • MySQL 使用触发器记录用户的操作日志问题

    目录 MySQL 使用触发器记录用户的操作日志 一.创建用户数据表(emp)和保存操作日志的表(emp_log) 二.为 emp 表创建触发器 1.创建触发器 trigger_after_insert_emp 2.创建触发器 trigger_after_update_emp 3.创建触发器 trigger_after_delete_emp 三.数据验证 1.在 emp 中添加数据记录 2.在 emp 中更新数据记录 3.在 emp 中删除数据记录 MySQL 使用触发器记录用户的操作日志 使用

  • Mysql中的触发器定义与使用

    目录 一.触发器的介绍 二.触发器的语法 (1)insert触发器 (2)update触发器 (3)delete触发器 一.触发器的介绍 触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后,触发并执行 触发器中定义的SQL语句集合.触发器的这种特性可以协助应用在数据库端确保数据的 完整性,日志记录,数据校验等操作. 使用别名old和new来引用触发器中发生变化的记录内容,这与其它的数据库是相似的. 现在触发器还只支持行级触发,不支持语句级触发. 触发器类型  

  • SQL触发器定义与使用

    目录 触发器简介 触发器的创建及调用 触发器的分类及执行顺序 触发器的删除 触发器的优缺点 比如:现需要向学生表中插入新的学生数据.但在插入学生数据的时,需要同时检查老师表里的数据.如果插入学生的老师不在老师表里,则先向老师表中插入一条老师数据,再向学生表中插入学生数据. CALL sp_add_student( 'S20170091', '杨艳', '女', '2003-04-09', 15, 'G0206', 89.23, 'T0021' ); 如果有多个学生的数据需要插入,则需要多次调用该

  • MySQL数据库的触发器和事务

    目录 一.触发器 概念 二. 触发器的操作 触发器的增删改操作 触发器的查看删除操作 三.事务 概念 四.事务的操作 基本流程 基础操作 事务的提交方式 事务的隔离级别 隔离操作 一.触发器 概念 触发器是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,是由事件来触发.触发器经常用来加强数据的完整性约束和业务规则. 二. 触发器的操作 创建account和account_log数据表: CREATE TABLE account( id I

  • 详解MySQL中存储函数创建与触发器设置

    目录 1.创建存储函数 2.调用存储函数 3.创建触发器 4.在触发器中调用存储过程 5.删除触发器 存储函数也是过程式对象之一,与存储过程相似.他们都是由SQL和过程式语句组成的代码片段,并且可以从应用程序和SQL中调用.然而,他们也有一些区别: 1.存储函数没有输出参数,因为存储函数本身就是输出参数. 2.不能用CALL语句来调用存储函数. 3.存储函数必须包含一条RETURN语句,而这条特殊的SQL语句不允许包含于存储过程中 1.创建存储函数 使用CREATE FUNCTION语句创建存储

  • MySQL深入浅出精讲触发器用法

    目录 前言 触发器概述 触发器的创建 代码举例1 代码举例2 代码举例3 查看删除触发器 触发器的优点 触发器的缺点 注意点 前言 在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表,如 商品信息 和 库存信息 分 别存放在 2 个不同的数据表中,我们在添加一条新商品记录的时候,为了保证数据的完整性,必须同时 在库存表中添加一条库存记录. 这样一来,我们就必须把这两个关联的操作步骤写到程序里面,而且要用 事务 包裹起来,确保这两个操 作成为一个 原子操作 ,要么全部执行,要么

  • MySQL触发器自动智能化的数据维护

    目录 触发器介绍 触发器的特性 触发器语法 数据准备 创建触发器 触发器——执行多个触发语句 New Old 操作 查看触发器 删除触发器 总结 触发器介绍 触发器,就是一种特殊的存储过程.触发器和存储过程一样是一个能够完成特定功能.存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动条用. 在MySQL中,只有执行insert,delete,update操作时才能触发触发器的执行 触发器的这种特性可以协助应用在数据库端

  • 详解MySQL数据库之触发器

    1 引言 本文是对MySQL中触发器的总结,从触发器概念出发,结合实例对创建触发器.使用触发器.删除触发器进行介绍. 2 触发器简介 MySQL触发器和存储过程一样,都是嵌入到MySQL的一段程序.触发器是由事件来触发某个操作,这些事件包括INSERT.UPDATE.DELETE.如果定义了触发器,当数据库执行这些语句的时候就会激活触发器执行相应的操作,触发程序是与表有关的命令数据库对象,当表上出现特定事件,将激活该对象. 触发器是一个特殊的存储过程,不同的是,执行存储过程要使用call语句来调

  • MySQL数据库的触发器的使用

    目录 使用触发器 触发器 创建触发器 删除触发器 使用触发器 INSERT触发器 DELETE触发器 UPDATE触发器 触发器的进一步介绍 使用触发器 触发器 发生什么事情之后或之前,会自动执行某条语句,这就是触发器 创建触发器 创建触发器要给出的4条关键信息: 1.唯一的触发器名 2.触发器关联的表 3.触发器应该响应的活动(DELETE,INSERT or UPDATE) 4.触发器何时执行(处理之前or之后) CREATE TRIGGER语句创建触发器 CREATE TRIGGER ne

  • MySQL数据库触发器从小白到精通

    这里是MYSQL成圣之路  先了解一下触发器,再来讨论是否能完全代替外键 什么是触发器? 概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行.触发器经常用于加强数据的完整性约束和业务规则等. 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据

  • MySql数据库触发器使用教程

    目录 一.介绍 二.操作 1.表数据准备 2.触发器格式 3.操作 三.触发器NEW和OLD的使用 1.案例 四.其他操作 五.注意事项 补充:验证触发器 总结 一.介绍 1.触发器是一种特殊的存储过程.触发器和存储过程一样,是一个能够完成特定功能.存储在数据库服务器上的SQL片段,但是触发器无语调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动调用. 2.在MySql中,只有执行insert,delete,update操作时才能触发触发器的执行 3.触发器的这种特

  • MySQL数据库 触发器 trigger

    目录 一.基本概念 1.作用 2.触发器的优缺点 2.1.优点 2.2.缺点 二.创建触发器 1.基本语法 2.触发对象 3.触发时机 4.触发事件 5.注意事项 需求: 三.查看触发器 四.触发触发器 五.删除触发器 六.触发器的应用 6.完善 2.优化 一.基本概念 触发器是一种特殊类型的存储过程,触发器通过事件进行触发而被执行 触发器 trigger 和js事件类似 1.作用 写入数据表前,强制检验或转换数据(保证数据安全) 触发器发生错误时,异动的结果会被撤销(事务安全) 部分数据库管理

  • MySQL数据库实验之 触发器和存储过程

    目录 一.实验目的 二.实验要求 三.实现内容及步骤 1.创建一个不带参数的简单存储过程 2.创建一个带输入参数的存储过程 3.创建一个带输入输出参数的存储过程 4.触发器的创建与使用 四.实验总结 观前提示:本篇内容为mysql数据库实验,代码内容经测试过,可能一小部分有所疏漏,也有会不符合每个人实验的要求的地方,因此以下内容建议仅做思路参考. 一.实验目的 1.掌握某主流DBMS支持的SQL编程语言和编程规范,规范设计存储过程: 2.能够理解不同类型触发器的作用和执行原理,验证触发器的有效性

  • MYSQL 数据库导入导出命令

    MySQL命令行导出数据库 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2,导出数据库:mysqldump -u 用户名 -p 数据库名 > 导出的文件名 如我输入的命令行:mysqldump -u root -p news > news.sql   (输入后会让你输入进入MySQL的密码

  • Oracle使用触发器和mysql中使用触发器的案例比较

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志,自动通知好友,其实就是在增加日志的时候做一个出发,再向表中写入条目. --触发器的效率很高 举例:论坛的发帖,每插入一个帖子都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,这时使用触发器效率会很高. 二.Oracle 使用 PL/SQL 编写触发器 1.--PL/SQL创建触发器的一般语法

  • MySQL数据库使用mysqldump导出数据详解

    mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可以用来实现轻量级的快速迁移或恢复数据库.是mysql数据库实现逻辑备份的一种方式. 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有

随机推荐