失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > sql触发器(insert update delete)

sql触发器(insert update delete)

时间:2023-07-18 07:09:57

相关推荐

sql触发器(insert update delete)

php教程|PHP开发

sql触发器

php教程-PHP开发

–insert 触发器

create trigger tri_insert

on student –将要进行更改的表名

for insert –给表插入一条数据的时候触发

as

declare @student_id char(10) –定义一个变量

SELECT @student_id=s.student_id from –把查询出的指定字段的值赋值给变量

student s inner join inserted i

on s.student_id=i.student_id

if @student_id=’0000000001′

begin

raiserror(‘不能插入1的学号!’,16,8)

rollback tran

end

go

手机端网站威客免费源码,ubuntu引导修复指令,python通用爬虫教程,php字体代码,追词seolzw

–update触发器

create trigger tri_update

on student –将要进行更改的表名

for update –给表修改一条数据的时候触发

as

if update(student_id)

begin

raiserror(‘学号不能修改!’,16,8)

rollback tran

end

go

最新视频打赏源码,ubuntu多屏幕合盖,java 爬虫 ip池,php中输出随机数的最大值,拓词+seolzw

–delete触发器

create trigger tri_delete

on student –将要进行更改的表名

for delete –给表删除一条数据的时候触发

as

declare @student_id varchar(10)

select @student_id=student_id from deleted

if @student_id=’admin’

begin

raiserror(‘错误’,16,8)

rollback tran

end

软文商城源码,ubuntu系统命令sys,tomcat编码格式怎么改,爬虫获取网页字体,php在网页上有什么作用,seo 优化招聘lzw

解释:在删除(delete)数据的时候,可以假定数据库将要删除的数据放到一个deleted临时表中,我们可以向读取普通的表一样,select 字段 from deleted

而insert的时候道理一样,只不过是把要插入的数据放在inserted表中。

更新操作可以认为是执行了两个操作,先把那一行记录delete掉,然后再insert,这样update操作实际上就对deleted表和inserted表的操作,所以不会有updated表了,有的时候两个表是主外键关系,想删除主表数据的同时把子表相关的数据也删除,这个时候如果用触发器就没有效果了,因为这个触发器是在你删除表后才触发的,这个时候直接终止,提示“有主外键关系,不能删除等”,所有这样的删除触发器是没有效果的

如果觉得《sql触发器(insert update delete)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。