触发器trigger 触发器我们也可以认为是存储过程,是一种特殊的存储过程。 存储过程:有输入参数和输出参数,定义之后需要调用 触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行。 适当的时候:触发器与表相关,当我们对
触发器我们也可以认为是存储过程,是一种特殊的存储过程。
存储过程:有输入参数和输出参数,定义之后需要调用
触发器:没有输入参数和输出参数,定义之后无需调用,在适当的时候会自动执行。
适当的时候:触发器与表相关,当我们对这个相关的表中的数据进行DDL(数据的添加、修改、删除)操作的时候
存储过程 |
触发器 |
create proc proc_name --声明输入参数和输出参数 as --过程体 |
create trigger tri_student_delete on student for delete as … go |
注:触发器是在对应的操作执行完成之后才执行的
sqlServer的数据字典中,提供了一张表deleted用户存储最后一次执行删除的数据
create trigger tri_student_delete on student for delete
as
print "这是我们的第一个触发器";
select * from deleted;
go
create trigger tri_student_insert on student for insert
as
print "这是tri_student_insert";
go
create trigger tri_student_delete_insert on student for insert,delete
as
print "触发器";
go
--删除一个学生信息,如果学生的年龄<21,则不进行删除
create trigger tri_stu_delete on student for delete
as
declare @age int
select @age=sage from deleted--deleted存储执行删除的数据
if(@age<21)
begin
raiserror("学生年龄太小,手下留情!",18,11);
rollback;--撤销执行的操作
end
go
序列
Create Sequence gygddj_cfjczb_Sequence
Increment by 1 -- 每次加几个
start with 1 -- 从1开始计数
nomaxvalue -- 不设置最大值,设置最大值:maxvalue 9999
nocycle -- 一直累加,不循环
cache 10;
可以与序列配合使用(实现自增)
Create trigger gygddj_cfjczb_Sequence before
insert on gygddj_cfjczb for each row
begin
select gygddj_cfjczb_Sequence.nextval into:New.AUTOID from dual;
end;
--结束END--
本文标题: oracle 触发器trigger(主键自增长)
本文链接: https://www.lsjlt.com/news/2902.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
2024-05-02
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0