返回顶部
首页 > 资讯 > 数据库 >SQL触发器定义与使用
  • 602
分享到

SQL触发器定义与使用

SQL触发器SQL触发器使用SQL触发器定义 2023-01-05 17:01:07 602人浏览 安东尼
摘要

目录触发器简介触发器的创建及调用触发器的分类及执行顺序触发器的删除触发器的优缺点比如:现需要向学生表中插入新的学生数据。但在插入学生数据的时,需要同时检查老师表里的数据。如果插入学生的老师不在老师表里,则先向老师表中插入

比如:现需要向学生表中插入新的学生数据。但在插入学生数据的时,需要同时检查老师表里的数据。如果插入学生的老师不在老师表里,则先向老师表中插入一条老师数据,再向学生表中插入学生数据。

CALL sp_add_student( 
'S20170091', '杨艳', '女', '2003-04-09',
15, 'G0206', 89.23, 'T0021'
);

如果有多个学生的数据需要插入,则需要多次调用该存储过程;可否不开发存储过程,在向student表插入(INSERT)数据前,后台自动判断并插入老师数据?

触发器简介

触发器:一种与表操作有关的数据库对象,当触发器所在表上出现指定事件(新增、修改、删除数据)时,将调用该对象,即表的操作事件触发表上的触发器的执行。

触发器的创建及调用

比如:现需要向学生表中插入新的学生数据。但在插入学生数据的时,需要同时检查老师表里的数据。如果插入学生的老师不在老师表里,则先向老师表中插入一条老师数据,再向学生表中插入学生数据。

触发器的创建:使用关键字CREATE TRIGGER

CREATE TRIGGER tri_add_student BEFORE INSERT
ON student FOR EACH ROW
BEGIN
	IF NOT EXISTS(SELECT 1 FROM teacher WHERE teacher_id = new.teacher_id) THEN
	INSERT INTO teacher(teacher_id) VALUES (new.teacher_id);
END IF;
END;
INSERT INTO student VALUES(
'S20170092', '李文', '女', '2002-11-19',
16, 'G0206', 55.32, 'T0022'
);

触发器的分类及执行顺序

按事件类型分:

  • INSERT触发器;
  • UPDATE触发器;
  • DELETE触发器;

按执行先后分:

  • BEFORE触发器;
  • AFTER触发器;

NEW与OLD:

  • INSERT触发器:NEW 用来表示将要(BEFORE)或已经(AFTER)插入的新数据;
  • UPDATE触发器:OLD 用来表示将要或已经被修改的原数据,NEW 用来表示将要或已经修改为的新数据;
  • DELETE触发器:OLD 用来表示将要或已经被删除的原数据;

触发器执行时的异常情况:

  • 如果 BEFORE 触发器执行失败,sql 无法正确执行;
  • SQL 执行失败时,AFTER 型触发器不会触发;
  • AFTER 类型的触发器执行失败,SQL 会回滚;

触发器的删除

触发器的删除:使用关键字DROP TRIGGER

如:DROP TRIGGER tri_add_student;

触发器的优缺点

优点:

  • 自动触发,无需调用;
  • 提供了一种检查、保证数据完整性的方法;
  • 与存储过程一样,增强SQL语言的功能和灵活性;

缺点:

  • 开发调试困难;
  • 可移植性差;

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

您可能感兴趣的文档:

--结束END--

本文标题: SQL触发器定义与使用

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

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

猜你喜欢
  • SQL触发器定义与使用
    目录触发器简介触发器的创建及调用触发器的分类及执行顺序触发器的删除触发器的优缺点比如:现需要向学生表中插入新的学生数据。但在插入学生数据的时,需要同时检查老师表里的数据。如果插入学生的老师不在老师表里,则先向老师表中插入...
    99+
    2023-01-05
    SQL触发器 SQL触发器使用 SQL触发器定义
  • Mysql中的触发器定义与使用
    目录一、触发器的介绍二、触发器的语法(1)insert触发器(2)update触发器(3)delete触发器一、触发器的介绍 触发器是与表有关的数据库对象,指在insert/update/delete 之前或之...
    99+
    2022-11-30
    MySQL触发器的使用 MySQL触发器
  • Mysql触发器怎么定义与使用
    这篇“Mysql触发器怎么定义与使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql触发器怎么定义与使用”文章吧。一...
    99+
    2023-07-04
  • MySQL触发器的定义与使用方法详解
    MySQL触发器的定义与使用方法详解 MySQL触发器是一种特殊的存储过程,可以在表发生特定事件时自动执行。触发器可以用于实现 数据的自动化处理、数据一致性维护等功能。本文将详细介绍...
    99+
    2024-03-15
    mysql 使用 触发器 sql语句
  • MySQL 触发器定义与用法简单实例
    本文实例讲述了MySQL 触发器定义与用法。分享给大家供大家参考,具体如下: 语法 CREATE TRIGGER 触发器名称  --触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和My...
    99+
    2024-04-02
  • 怎么使用sql触发器
    本篇文章给大家分享的是有关怎么使用sql触发器,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  sql中的触发器是对某个表进行操作时...
    99+
    2024-04-02
  • sql触发器如何使用
    这篇文章给大家分享的是有关sql触发器如何使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  sql中的触发器是对某个表进行操作时而触发的某种条件,可以用CREATE语句创建触...
    99+
    2024-04-02
  • JS中如何使用自定义事件与触发操作
    小编给大家分享一下JS中如何使用自定义事件与触发操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:1. 事件的创建JS...
    99+
    2024-04-02
  • SQL SERVER触发器怎么使用
    SQL Server触发器可以在数据库中的表上定义,当满足特定条件时,触发器会自动执行一些操作。以下是使用SQL Server触发器...
    99+
    2023-08-18
    SQL SERVER
  • SQL触发器
    翻看博客,发现居然没有触发器使用说明,现补上。  触发器触发的时候两个特殊的表:    插入表(instered表):Inserted表的数据是插入或是修改后的数据    删除表(deleted表...
    99+
    2024-04-02
  • 如何在MySQL中使用Python编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用Python编写自定义触发器、存储引擎和触发器触发器(triggers)是MySQL数据库中的一种特殊类型的存储过程。它们与特定的表相关联,并在表的INSERT、UPDATE或DELETE操作时自动触发并执行一...
    99+
    2023-10-22
    Python MySQL 自定义触发器 (Custom triggers) 存储引擎 (Storage engines)
  • 如何在MySQL中使用PHP编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用PHP编写自定义触发器、存储引擎和触发器引言:MySQL是一个广泛使用的开源关系型数据库管理系统,在数据库开发中,触发器和存储过程是非常重要的概念。本文将重点介绍如何使用PHP编写MySQL中的自定义触发器、存储引擎和...
    99+
    2023-10-22
    关键词: 自定义触发器 存储引擎和触发器 在MySQL中使用PHP。
  • 如何在MySQL中使用JavaScript编写自定义触发器、存储引擎和触发器
    如何在MySQL中使用JavaScript编写自定义触发器、存储引擎和存储过程导读:MySQL是一种广泛使用的关系型数据库管理系统,它使用SQL(结构化查询语言)作为其主要查询语言。然而,MySQL也支持其他编程语言,如JavaScript...
    99+
    2023-10-22
    MySQL 触发器 存储引擎 JavaScript编写 自定义触发器
  • 如何在MySQL中使用C#编写自定义触发器、存储引擎和触发器
    在MySQL中使用C#编写自定义触发器、存储引擎和触发器,需要使用MySQL的Connector/NET,这是一个用于连接MySQL...
    99+
    2023-10-20
    MySQL
  • 如何在MySQL中使用PHP编写自定义存储引擎、触发器和触发器
    在MySQL中使用PHP编写自定义存储引擎、触发器和函数是不可能的,因为MySQL不支持使用PHP作为存储引擎或触发器的编程语言。M...
    99+
    2023-10-20
    MySQL
  • MySQL自定义函数及触发器
    目录1. 存储函数(自定义函数)1.1 定义存储函数1.2 调用存储函数1.3 删除存储函数2. 触发器2.1 触发器介绍2.2 创建触发器2.3 删除触发器2.4 查看触发器1. ...
    99+
    2022-11-13
    MySQL自定义函数 MySQL触发器
  • SQL触发器的使用及语法
    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。常见的触发器有三种:分别应用于Insert , Update , Delete 事件。 我为...
    99+
    2015-02-12
    SQL触发器的使用及语法 数据库入门 数据库基础教程 数据库 mysql
  • Sql Server中如何使用触发器
    本篇文章为大家展示了Sql Server中如何使用触发器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Sql Server为每个触发器都创建了两个专用表:Inser...
    99+
    2024-04-02
  • sql触发器的使用有哪些
    SQL触发器是数据库中的一种特殊对象,它们可以在数据库中的某个特定事件发生时自动执行一系列的操作。以下是SQL触发器的一些常见使用场...
    99+
    2023-10-25
    sql
  • sql触发器的使用及语法
    触发器是一种数据库代码,在特定事件(插入、更新、删除)发生时自动执行。触发器的语法包含触发器名称、表名称和触发时机(before/after)以及事件类型(insert/update/d...
    99+
    2024-04-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作