社区
Oracle
帖子详情
大家好,问一个问题,触发器里能不能有ddl
shipatrioc
2004-01-14 07:16:19
我现在碰到一个问题,就是当插入或者删除一个表里的一条记录时,另外一个表里的field要跟着改变,我想用触发器实现,结果出现错误,意思是触发器里不能有commit操作,我想可能是ddl自动commit才引起这问题,各位有没有碰见过这种情况,如果在触发器里不行,有没有更好的办法!我可不想在程序里操作 :)
...全文
50
4
打赏
收藏
大家好,问一个问题,触发器里能不能有ddl
我现在碰到一个问题,就是当插入或者删除一个表里的一条记录时,另外一个表里的field要跟着改变,我想用触发器实现,结果出现错误,意思是触发器里不能有commit操作,我想可能是ddl自动commit才引起这问题,各位有没有碰见过这种情况,如果在触发器里不行,有没有更好的办法!我可不想在程序里操作 :)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
sql
触发器
详解与实例
触发器
和普通的存储过程的区别是:
触发器
是当对某
一个
表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的
触发器
。SQL Server 2005中
触发器
可以分为两类:DML
触发器
和
DDL
...
oracle安全审计之登录登出、
ddl
操作记录
触发器
oracle的登录、登出
触发器
(时间、来访ip、用户信息、sid等等),
ddl
操作记录
触发器
(含create、drop、alter、truncate等),都属于事后触发,不影响业务操作
Oracle中通过
触发器
来追踪用户的活动
从Oracle8i开始,Oracle引入了特殊...当Oracle提供了这些新的
触发器
的功能后,却还不清楚该如何使用这些
触发器
来追 踪系统的使用情况。这篇文章描述了我是如何使用创建终端用户登陆/注销的方法来追踪终端用户的活动的。
Oraclet中的
触发器
触发器
名与过程名和包的名字不一样,它是单独的名字空间,因而
触发器
名可以和表或过程有相同的名字,但在
一个
模式中
触发器
名
不能
相同。
触发器
的限制 CREATE TRIGGER语句文本的字符长度
不能
超过32KB;
触发器
...
Oracle
17,089
社区成员
55,237
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章