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

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而不会存在循环问题,我才下班,还没来得及试验,不好意思
发表评论