触发器实现级联修改数据库中的相关表
来源:互联网 发布:摄像头ip修改软件 编辑:程序博客网 时间:2024/05/23 10:48
数据表关系图:
数据库中有三张表,新闻类别表(category),新闻表(news),评论表(comment),News表的categoryId和category表中的ID外键关联,comment表中的NewsId和News表中的Id外键关联。
在sql中执行:
delete from category where Id =1
如果news表和comment表中有和category表中Id=1关联,那么就会提示delete语句和外键关系冲突,执行失败。解决外键关联实现级联修改数据库相关表,就用到了触发器。
很简单,在要删除的Category表中新建一个触发器,设计一段从下到上逐步删除的SQL语句:
USE [newssystem]GO/****** 对象: Trigger [dbo].[trigCatgoryDelete] 脚本日期: 07/26/2012 19:44:26 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Jesse-- Create date: 2012-7-26-- Description:删除类别触发器-- =============================================ALTER TRIGGER [dbo].[trigCatgoryDelete] ON [dbo].[Category] instead of DELETEAS BEGIN--delete news where categoryid=(select id from deleted)--declare @Id int --select @Id=id from deleted--delete news where categoryId=@id--delete category where id=@iddeclare @caId intselect @caId =id from deleted--删除评论delete comment where newsId in(select newsId from news wherer caId=@caId)--删除新闻delete news where categoryId=@caId--删除类别delete category where id=@caIdEND
- 触发器实现级联修改数据库中的相关表
- orcale 触发器实现级联删除
- Sqlserver数据库级联修改
- 触发器在SQL数据库中的实现
- 用触发器来实现级联更新级联删除
- oracle中使用触发器实现级联更新
- 数据库中的触发器
- 查看数据库中的触发器
- 数据库中的所有触发器
- 浅谈数据库中的触发器
- 数据库中的触发器
- 浅谈数据库中的触发器
- 浅谈数据库中的触发器
- 数据库中的触发器
- 浅谈数据库中的触发器
- Oracle数据库中的触发器
- 浅谈数据库中的触发器
- 浅析数据库中的触发器
- hibernate总结笔录e
- 23种设计模式
- Box2D v2.1.0用户手册翻译 - 第11章 杂项(Loose Ends)
- java 对ArrayList排序,实现Comparable接口
- IOS网络指示器实例
- 触发器实现级联修改数据库中的相关表
- 浅谈树形背包问题
- IOS应用图标上的数字提示实例
- 怎样动态的添加和删除菜单栏的选项
- 类型转换
- 用busybox制作嵌入式Linux的文件系统
- MySQL配置文件浅读
- PHP查看错误日志
- jquery动态添加table和行