当前位置:网站首页 > 技术博客 > 正文

sql触发器怎么写



        触发器是基于一个表创建的,但是可以针对多个表进行操作。所以触发器可以用来对表实施复杂的完整性的约束,当触发器所保存的数据发生改变时,触发器所保存的数据发生改变时,触发器被自动激活,从而防止对数据的不正确修改。

        下面对每个INSERT、DELETE、UPDATE触发器举一个小例子来加深理解:

INSERT触发器:

        INSERT触发器就是当对定义触发器的表执行INSERT语句时,就会调用的触发器,INSERT触发器可以用来修改,甚至拒绝接受正插入的记录。

建立一个学生信息管理的数据库,并且建立两个表,如下图所示:



ClassInfo表如下:


StudentInfo表如下:


新建查询,输入如下的代码:


 

上面这段代码就是建立了一个插入触发器



如上图所示

1、  写明触发器的名称

2、  该触发器是在那个表改变的时候发生

3、  当这个表进行什么操作的时候发生

4、  发生上述操作之后还要进行怎样的操作。

 

这段代码的意思是:当在studentInfo表中添加一条记录的时候,就要更新ClassInfo中的TotalNum这一列,这一列的数据要增加1

 

下面我们验证一下:

输入下面的代码:

 

执行之后将出现下面的结果:




        所以当我们想student表中插入一条记录的时候,Class表中的某一列就会加1.

DELETE触发器:

        当数据库运行DELETE语句时,就会激活DELETE触发器,DELETE触发器用于约束用户能够从数据库中删除的数据,因为这些数据中,有些数据是不希望用户轻易删除的。

        接下来,我们再建立一个表,并且输入一些数据,如下图所示:

 


新建查询,输入如下的代码:

create Trigger T_DELETETEACHERon TeacherInfoFor deleteas select TeacherName as 教师姓名,Sex, Age from deleted

输入下面的语句

delete from TeacherInfo where TeacherId = '001'



执行结果如图所示:





他会将我们刚刚删除的语句显示出来。

UPDATE 触发器:

当一个UPDATE语句在目标表上运行的时候,就会调用UPDATE触发器,这种类型的触发器专门用于约束用户能修改的现有的数据。

继续用上面的教师信息表,输入下面的代码



 
              

接着我们更改一下第二条教师的信息

输入下面的代码:

Update TeacherInfo setTeacherName=’仙儿’ where TeacherID = ‘002’

将弹出下面的消息框:














  • 上一篇: i2c协议详解
  • 下一篇: 余弦相似度的缺陷
  • 版权声明


    相关文章:

  • i2c协议详解2025-05-25 19:01:03
  • ios手柄插件2025-05-25 19:01:03
  • js settimeout promise2025-05-25 19:01:03
  • uboot启动流程和架构2025-05-25 19:01:03
  • 命令行模式怎样发命令到COM12025-05-25 19:01:03
  • 余弦相似度的缺陷2025-05-25 19:01:03
  • 霍夫曼树和霍夫曼编码2025-05-25 19:01:03
  • 01背包 python2025-05-25 19:01:03
  • iic.2025-05-25 19:01:03
  • 哈夫曼树构建规则2025-05-25 19:01:03