如何在oracle中设置不同的删除方式,无论是否激活触发器
我使用的是oracle 11g,模式如下:如何在oracle中设置不同的删除方式,无论是否激活触发器,oracle,function,oracle11g,triggers,procedure,Oracle,Function,Oracle11g,Triggers,Procedure,我使用的是oracle 11g,模式如下: TRANSFER(id_transfer, origin_account, destine_account, amount, date, id_replica) DELETES(id, table, id_replica, date) 其他表,每个表都有一个id_副本作为标识符 我还为每个表设置了一个触发器,当delete复制表DELETES中删除的id_副本时。因此,如果我删除一个transfer,它首先保存到DELETES(id,transfe
TRANSFER(id_transfer, origin_account, destine_account, amount, date, id_replica)
DELETES(id, table, id_replica, date)
其他表,每个表都有一个id_副本作为标识符
我还为每个表设置了一个触发器,当delete复制表DELETES中删除的id_副本时。因此,如果我删除一个transfer,它首先保存到DELETES(id,transfer,id\u replica,sysdate)中,这是为了在我删除的内容上有一个记录
问题是,现在我想在不激活此触发器的情况下进行删除,我需要有两种方法来删除行,激活触发器并将删除的内容保存到表DELETES中,以及在不激活此触发器的情况下删除行。
我想到了一些解决方案:
如何创建删除行的过程/函数?还有其他方法吗?:如果您不想将删除的记录记录在表中
deletes
,那么停用触发器然后执行删除操作的唯一方法是,如果您不想一次又一次地执行此操作,那么您可以创建一个过程,比如deactivateAndperformDelete,它取表的主键,第一条语句是去激活触发器,执行删除,删除后再激活触发器,这样可以实现手动激活和去激活触发器,我怎么做这个过程?我从来没有做过一件事:现在是开始阅读和实现感谢的时候了,我解决了这个问题,制作了一个删除和插入删除表的过程