首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

delete、insert或update触发器之后的SQL

在数据库中,触发器是一种特殊的数据库对象,它可以在数据库表中的特定操作(如删除、插入或更新)发生时自动执行一系列的SQL语句。触发器通常用于实现数据完整性约束、自动更新数据、记录数据变化历史等功能。

触发器分为三类:delete触发器、insert触发器和update触发器。

  1. Delete触发器:
    • 概念:Delete触发器是在删除操作完成之后自动执行的SQL语句集合。
    • 分类:Delete触发器可以细分为行级触发器和语句级触发器。行级触发器在每个受影响行上触发,而语句级触发器在整个删除操作完成后触发。
    • 优势:Delete触发器可以用于在删除数据之前或之后执行特定的操作,如更新其他相关表的数据、记录删除操作的日志等。
    • 应用场景:Delete触发器常用于实现级联删除、日志记录、审计追踪等功能。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
  • Insert触发器:
    • 概念:Insert触发器是在插入操作完成之后自动执行的SQL语句集合。
    • 分类:Insert触发器可以细分为行级触发器和语句级触发器。行级触发器在每个插入的行上触发,而语句级触发器在整个插入操作完成后触发。
    • 优势:Insert触发器可以用于在插入数据之前或之后执行特定的操作,如数据验证、生成默认值、更新其他相关表的数据等。
    • 应用场景:Insert触发器常用于数据验证、自动生成数据、触发其他业务逻辑等场景。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
  • Update触发器:
    • 概念:Update触发器是在更新操作完成之后自动执行的SQL语句集合。
    • 分类:Update触发器可以细分为行级触发器和语句级触发器。行级触发器在每个更新的行上触发,而语句级触发器在整个更新操作完成后触发。
    • 优势:Update触发器可以用于在更新数据之前或之后执行特定的操作,如数据验证、记录变更历史、更新其他相关表的数据等。
    • 应用场景:Update触发器常用于数据验证、记录变更历史、级联更新等场景。
    • 推荐的腾讯云相关产品:腾讯云的云数据库 TencentDB 可以支持触发器功能。详情请参考腾讯云官网:TencentDB产品介绍
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

postgresql 触发器 简介(转)

– 把before for each row的触发器删掉, 再测试插入 : postgres=# drop trigger tg02 on t_ret; DROP TRIGGER postgres=# drop trigger tg2 on t_ret; DROP TRIGGER postgres=# insert into t_ret values(1,’digoal’,now()); NOTICE: 00000: tg01 LOCATION: exec_stmt_raise, pl_exec.c:2840 NOTICE: 00000: tg1 LOCATION: exec_stmt_raise, pl_exec.c:2840 NOTICE: 00000: tg03, after for each row 的触发器函数返回空, 不影响后续的触发器是否被调用. 因为只要表上面发生了真正的行操作, after for each row就会被触发, 除非when条件不满足. (这个后面会讲到) LOCATION: exec_stmt_raise, pl_exec.c:2840 NOTICE: 00000: tg3 LOCATION: exec_stmt_raise, pl_exec.c:2840 NOTICE: 00000: tg04 LOCATION: exec_stmt_raise, pl_exec.c:2840 NOTICE: 00000: tg4 LOCATION: exec_stmt_raise, pl_exec.c:2840 INSERT 0 1 – 有数据插入. 这也说明了before for each statement的返回值为空并不会影响数据库对行的操作. 只有before for each row的返回值会影响数据库对行的操作. postgres=# select * from t_ret ; id | info | crt_time —-+——–+—————————- 1 | digoal | 2013-03-10 16:50:39.551481 (1 row)

02

SQL知识整理一:触发器、存储过程、表变量、临时表

说明:   1 tr_name :触发器名称   2 on table/view :触发器所作用的表。一个触发器只能作用于一个表   3 for 和after :同义   4 after 与instead of :sql 2000新增项目afrer 与 instead of 的区别     After       在触发事件发生以后才被激活,只可以建立在表上     Instead of       代替了相应的触发事件而被执行,既可以建立在表上也可以建立在视图上   5 insert、update、delete:激活触发器的三种操作,可以同时执行,也可选其一   6 if update (col_name):表明所作的操作对指定列是否有影响,有影响,则激活触发器。此外,因为delete 操作只对行有影响, 所以如果使用delete操作就不能用这条语句了(虽然使用也不出错,但是不能激活触发器,没意义)。   7 触发器执行时用到的两个特殊表:deleted ,inserted     deleted 和inserted 可以说是一种特殊的临时表,是在进行激活触发器时由系统自动生成的,其结构与触发器作用的表结构是一样的,只是存放 的数据有差异。   8 说明deleted 与inserted 数据的差异     deleted 与inserted 数据的差异     Inserted 存放进行insert和update 操作后的数据     Deleted 存放进行delete 和update操作前的数据     注意:update 操作相当于先进行delete 再进行insert ,所以在进行update操作时,修改前的数据拷贝一条到deleted 表中,修改后的数据在存到触发器作用的表的同时,也同时生成一条拷贝到insered表中

02

sqlserver事务锁死_sql触发器格式

触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表 事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,当对一个表 进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务 规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。 【触发器和存储过程的区别】 触发器与存储过程的区别是运行方式的不同,触发器不能执行EXECUTE语句调用,而是在用户执行 Transact-SQL语句时自动触发执行而存储过程需要用户,应用程序或者触发器来显示地调用并执行。

01
领券