触发器简单了解

触发器

  • 什么是触发器

触发器只会因为这三种SQL语言而启动:

Delete 语句,insert语句,update语句

 

应用情景:使一个量可以随着数据的变化而自动实现加减变化。

  • 创建触发器

一条执行语句的触发器:

Create trigger trigger_name

Before/after trigger_event

On table_name for each row trigger_stmt;(一条执行语句)

trigger_name:创建的触发器的名字

Before/after :触发前还是触发后

trigger_event:触发条件:insert /update /delete

Table_name:被触发的表名字

Trigger_stmt:触发前或后需要执行的语句

 

例子1:在向部门表table_dept插入记录的时候,就会在插入前向日记表table_diary中插入当前时间。

Create trigger trigger_hello

Before insert

On table_dept for each row insert into table_diary values(.....);

 

多条执行语句的触发器:

Create trigger trigger_name

Before/after trigger_event

On table_name for each row

Begin

 trigger_stmt

End

begin和end之间的是多条执行语句。

 

例子2:同上例子1,不过执行语句改为两条

Delimiter $$

Create trigger trigger_hello

Before insert

On table_dept for each row

begin

insert into table_diary values(.....);

insert into table_diary values(.....);

End

$$

Delimiter;

 

  • 查看触发器

Show triggers;

 

  • 删除触发器

Drop trigger trigger_name

 

 

触发器是Oracle数据库中的一种特殊对象,它是一个存储过程,当特定的DML或DDL事件发生时,Oracle会自动执行触发器中的代码。触发器可以用于实现自动增长、数据生成、安全权限控制、审计和日志记录等功能。\[2\]\[3\] 下面是一个简单的Oracle触发器案例: ```sql -- 创建一个触发器,在插入数据到表中时自动更新修改时间字段 CREATE OR REPLACE TRIGGER update_modify_time BEFORE INSERT ON your_table FOR EACH ROW BEGIN :NEW.modify_time := SYSDATE; END; / ``` 这个触发器名为`update_modify_time`,在每次向`your_table`表中插入数据之前触发触发器的主体部分是一个PL/SQL块,其中`:NEW.modify_time`表示新插入的行的`modify_time`字段,`SYSDATE`表示当前的系统时间。这个触发器的作用是在插入数据时自动将`modify_time`字段更新为当前时间。\[1\] 通过这个简单的案例,你可以了解到Oracle触发器的基本语法和用法。 #### 引用[.reference_title] - *1* *2* [Oracle触发器](https://blog.csdn.net/m0_63223374/article/details/124561919)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Oracle 触发器的使用(带案例详解)](https://blog.csdn.net/weixin_53436351/article/details/122959908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值