牛腩新闻发布系统-触发器

前言

之前听小伙伴说过触发器,这次敲牛腩新闻发布系统,就学到了触发器。

正文

在新闻发布系统中,需要删除新闻时同时将评论删除,同时将此此类别删除。这时候用到了触发器。所有顾名思义,触发器就是因为某一个事件而出发了一系列得事件。

  1. 添加触发器步骤

在需要添加触发器得表中添加触发器
在这里插入图片描述

USE [news System]
GO
/****** Object:  Trigger [dbo].[trigCategoryDelete]    Script Date: 2018/12/5 11:03:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Winni
-- Create date: 2018.12.05
-- 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 =(select newsId from news where caId =@caid )
	--删除新闻
	delete news where caid =@caid 
	--删除类别
	delete category where id =@caid 
END
  1. 触发器的优点:

触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。

一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。

  1. 触发器要慎用
    触发器很方便,但是为什么要慎用呢?

触发器本身没有过错,但由于我们的滥用会造成数据库及应用程序的维护困难。在数据库操作中,我们可以通过关系、触发器、存储过程、应用程序等来实现数据操作…… 同时规则、约束、缺省值也是保证数据完整性的重要保障。如果我们对触发器过分的依赖,势必影响数据库的结构,同时增加了维护的复杂程度。

这个我在敲牛腩的时候就遇到了难以维护的问题。因为一开始数据库没有设置主键自增,所有很多增加的新闻都没有ID,后来子颍告诉我可以自增,我就打算把我的category都删掉,但是一删就触发了“触发器”,就删不了了,但是真的是很苦恼啊,最后决定把触发器先删掉,再去删我的表,所以维护真的是挺麻烦的。

但是这次了解了触发器真的是挺好的,学到了知识可以不用,但是了解一下还是好的。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草莓味少女vv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值