Trigger触发器的正确使用方法-Oracle (trigger)

教程大全 2025-07-13 14:52:06 浏览

1.记录数据库的某个用户对于数据库的操作,首先要一个记录操作信息的表:

Java代码

Oracle

2.对应的Oracle trigger,下面以Oracle的dept表为例子:

Java代码

【编辑推荐】


oracle数据库,写一个触发器,删除主表信息,同时删除从表信息

展开全部--设定主表:TA(itemnumber,addrvarchar2(100),phonevarchar2(12))--从表:TB(itemnumber,namevarchar2(20),moneynumber(12,2))--主键为itemCREATEORREPLACETRIGGERTR_DB_TABEFOREDELETEONTAREFERENCINGNEWASNewOLDASOldFOREACHROWDECLAREBEGINdeleteTBwhereitem=;EXCEPTIONWHENOtheRSTHENRAISE;ENDTR_DB_TA;/

如何在修改数据库其中一个表的时候会同时修改另外一个表数据?

写个触发器就可以实现,每次往表2新增数据时,都会触发修改表1的数据,下面是oracle触发器,你可以参照下:create or replace trigger trigger_test after inserton 表2 for each rowdeclareintegrity_Error exception;errnointeger;errmsg char(200);dummYinteger;foundboolean;beginif inserting thenupdate 表1 set Quantity = (select sum(QuantityOfOne) from 表2 where id =);end if;exceptionwhen integrity_error thenraise_application_error(errno, errmsg);end;

关于Oracle触发器的问题

trigger的触发条件是insert or update,他跟字段名无关,所以当你2个一起执行的时候,就会出现这样的情况:update 表534的时候,触发trigger:hjx_formtable534_inser533也跟着update;接着触发hjx_formtable533_update,这时又把534也update了。 从此走上死循环的不归路。 。 。 。 。 。 其实可以这样(我不知道你哪个table1,哪个table2)。 table1的trigger设置为affer,那么另外一个trigger设置为before,这样理论上应该可以同时触发2个 trigger而不会存在循环问题,我才下班,还没来得及试验,不好意思

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐