触发器
Oracle触发器是在特定数据库事件发生时自动执行的过程。Oracle触发器可以在以下事件上定义:
- INSERT:当向表中插入新记录时触发
- UPDATE:当修改表中的记录时触发
- DELETE:当从表中删除记录时触发
创建触发器的语法如下:
CREATE TRIGGER trigger_name
{BEFORE | AFTER | INSTEAD OF}
{INSERT | UPDATE | DELETE}
ON table_name
[FOR EACH ROW]
BEGIN
-- 触发器体
END;
- BEFORE:在事件发生前触发
- AFTER:在事件发生后触发
- INSTEAD OF:取代事件
- FOR EACH ROW:针对每一行触发,否则仅在语句级触发一次
例如,创建一个在往employees表中插入数据前触发的触发器:
CREATE TRIGGER emp_salary_trigger
BEFORE INSERT ON employees
FOR EACH ROW
BEGIN
-- 校验工资必须大于0
IF :NEW.salary <= 0 THEN
RAISE_APPLICATION_ERROR(-20002, 'Salary must be positive');
END IF;
END;
这个触发器会在插入新记录前校验salary字段的值必须大于0,否则抛出应用程序错误。
触发器可以用来实现类似于级联更新或者删除等操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南