数据库操作--触发器

触发器是一种特殊类型的存储过程,它不同于存储过程,触发器主要是通过事件进行触发被自动调用执行的,而存储过程可以通过存储过程的名称而被调用。

触发器分为

1、  after触发器

2、  insert触发器

3、  update触发器

4、  delete触发器

触发器是在对表进行插入、更新、删除的时候会自动执行的存储过程。触发器的功能虽然强大,轻松可靠地实现许多复杂的功能,但是过多触发器会造成数据库及应用程序的维护困难,同时对触发器过分的依赖,会影响数据库的结构,同时增加了维护的复杂程序。

在牛腩新闻发布系统中学习了下触发器的使用,在对表中数据进行删除的时候,先删除其他表中的数据,然后执行删除本表中的数据。

<span style="font-family:KaiTi_GB2312;font-size:18px;">USE [newssystem]
GO
/****** Object:  Trigger [dbo].[trigCategoryDelete]    Script Date: 2015/2/8 22:48:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		马世超
-- Create date: 2015-2-4
-- Description:	删除类别触发器
-- =============================================
ALTER TRIGGER [dbo].[trigCategoryDelete]
   ON  [dbo].[category]
   instead of delete
AS
BEGIN
	declare @caId int
	select @caId=id from deleted
	--删除评论
	delete comment where newsId in (select newsId from news where [email protected])
	--删除新闻
	delete news where [email protected]
	--删除类别
	delete category where [email protected]
END
</span>

这次触发器的使用,发现触发器跟视图和存储过程一样,都没有想象中的那么难。触发器应该还有更大的作用,现在只是相当于简单的了解了一下,相信以后用它会发生更大的作用。

时间: 2024-12-07 04:00:21

数据库操作--触发器的相关文章

常用的Mysql数据库操作语句大全

零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PASSWORD('fdddfd'); 3.权限管理 >SHOW GRANTS FOR name;    //查看name用户权限 >GRANT SELECT ON db_name.* TO name; //给name用户db_name数据库的所有权限 >REVOKE SELECT ON db_n

数据库:触发器

触发器的概念: 是用户定义在关系表上的一类有事件驱动的特殊过程.一旦定义,任何对表的增删改操作均有服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制.类似于约束,但比约束更灵活. 触发器的分类: DML触发器:DML(Data Manipulation Language)触发器是当数据库服务器中发生数据操作语言事件时执行的存储过程.DML触发器又分为两类:After触发器和Instead Of触发器 DDL触发器:DDL触发器是在响应数据定义语言(Data Definition L

学习MySQL之数据库操作(一)

所有代码,均为自学时用到的测试与注释,知识细节或知识点不会面面俱到,亦不会有任何讲解,只做为自己学习复习用. ##数据库操作 ##创建数据库 myTest ,并将数据库字符集设为GBK CREATE DATABASE myTest CHARSET gbk; ##进入数据库 myTest USE myTest ; ##创建数据库表 t_dept,并将表的字符集设为GBK,同时,char和test字段的字符集,自动变为gbk CREATE TABLE t_dept ( deptno INT (11)

Mysql数据库操作语句

零.用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PASSWORD('fdddfd'); 3.权限管理 >SHOW GRANTS FOR name;    //查看name用户权限 >GRANT SELECT ON db_name.* TO name; //给name用户db_name数据库的所有权限 >REVOKE SELECT ON db_n

3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的区别,sql文件导入

 1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date definition Language) 数据库定义语言 create table;create view index sequence synonvm同义词,truncate table DCL语言 (Data control Language) 数据控制语言 commit rollback s

python之数据库操作(sqlite)

python之数据库操作(sqlite) 不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分.所以主要的通信协议是在编程语言内的直接API调用.这在消耗总量.延迟时间和整体简单性上有积极的作用.整个数据库(定义.表.索引和数据本身)都在宿主主机上存储在一个单一的文件中.相比其它大型数据库来说,确实有些差距.但是包括事务(transaction),就是代表原子性.一致性.隔离性和持久性的(ACID),触发器(trigger)和多数的

Ubantu MySQL数据库操作

用户管理: 1.新建用户: >CREATE USER name IDENTIFIED BY 'ssapdrow'; 2.更改密码: >SET PASSWORD FOR name=PASSWORD('fdddfd'); 3.权限管理 >SHOW GRANTS FOR name;     //查看name用户权限 >GRANT SELECT ON db_name.* TO name; //给name用户db_name数据库的所有权限 >REVOKE SELECT ON db_na

Python/MySQL(四、MySQL数据库操作)

Python/MySQL(四.MySQL数据库操作) 一.数据库条件语句: 1 case when id>9 then ture else false 二.三元运算: 1 if(isnull(xx)0,1) 三.上下连表: select id,name from ta1 union 天然去重(检测上边的表和下边的表行内完全一样就只显示一行内容) select num,sname from tb2 ========================================== select

数据库(触发器、数据库事务、存储练习)

触发器: 触发器为特殊类型的存储过程,可在执行语言事件时自动生效.SQL Server 包括三种常规类型的触发器:DML 触发器.DDL 触发器和登录触发器. 当服务器或数据库中发生数据定义语言 (DDL) 事件时将调用 DDL 触发器.登录触发器将为响应 LOGON 事件而激发存储过程.与 SQL Server 实例建立用户会话时将引发此事件. 当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器.DML 事件包括在指定表或视图中修改数据的 INSERT 语句.UPDATE 语