社区
Oracle
帖子详情
大家好,问一个问题,触发器里能不能有ddl
shipatrioc
2004-01-14 07:16:19
我现在碰到一个问题,就是当插入或者删除一个表里的一条记录时,另外一个表里的field要跟着改变,我想用触发器实现,结果出现错误,意思是触发器里不能有commit操作,我想可能是ddl自动commit才引起这问题,各位有没有碰见过这种情况,如果在触发器里不行,有没有更好的办法!我可不想在程序里操作 :)
...全文
85
4
打赏
收藏
大家好,问一个问题,触发器里能不能有ddl
我现在碰到一个问题,就是当插入或者删除一个表里的一条记录时,另外一个表里的field要跟着改变,我想用触发器实现,结果出现错误,意思是触发器里不能有commit操作,我想可能是ddl自动commit才引起这问题,各位有没有碰见过这种情况,如果在触发器里不行,有没有更好的办法!我可不想在程序里操作 :)
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chanet
2004-01-15
打赏
举报
回复
楼上说的好 :)
触发器整体就是一个事务来的,由 Oracle 控制.
但设置了 PRAGMA AUTONOMOUS_TRANSACTION 之后,触发器的事务就是由自己控制,可以自由 rollback/commit/alter table... 等等之类的操作
leecooper0918
2004-01-14
打赏
举报
回复
触发器本身就带有事务,执行失败自动回滚
如果要在触发器中执行DDL操作,可以启用自治的事务.
CREATE TRIGGER bonus_trig
AFTER UPDATE ON bonus
DECLARE
-- enables trigger to perform DDL
PRAGMA AUTONOMOUS_TRANSACTION; BEGIN
EXECUTE IMMEDIATE ’DROP TABLE temp_bonus’;
END;
shipatrioc
2004-01-14
打赏
举报
回复
我知道,当修改一个表结构时,可以触发一个事件,去做其它的操作,就是DDL触发器!
但我现在的问题是,我在DML触发器里,要做DDL操作
solidpanther
2004-01-14
打赏
举报
回复
能,触发器里不用写commit
一个
DDL
触发器
例子(阻止
DDL
并记警告日志)
有时我们需要控制用户对表执行
DDL
操作,包括truncate等操作。为了达到灵活控制的目的,我们使用了
DDL
trigger
oracle安全审计之登录登出、
ddl
操作记录
触发器
oracle的登录、登出
触发器
(时间、来访ip、用户信息、sid等等),
ddl
操作记录
触发器
(含create、drop、alter、truncate等),都属于事后触发,不影响业务操作
浅析SQL Server2005中的
DDL
触发器
技术.pdf
浅析SQL Server2005中的
DDL
触发器
技术.pdf
oracle_
触发器
的种类和触发事件
oracle_
触发器
的种类和触发事件,很详细!
MSSQL2008R2
触发器
问
题
代码
MSSQL2008R2
触发器
问
题
代码
Oracle
17,137
社区成员
55,258
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章