如何在oracle中设置不同的删除方式,无论是否激活触发器

时间:2013-11-22 18:36:08

标签: 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_replica作为标识符。

我每个表都有一个触发器,当删除它时复制删除表DELETES中的id_replica。因此,如果我删除转移它首先保存到DELETES(id,transfer,id_replica,sysdate),这是为了记录我删除的内容。

问题是现在我想在不激活此触发器的情况下进行删除,我需要有两种删除行的方法,激活触发器并将删除的内容保存到表DELETES中,并删除该行不激活此触发器。

我想到了一些解决方案:

  1. 制作2个不同的程序/功能来删除每个表中的一行(或者只有一个带有触发器,另一个可以正常完成)。

  2. 在每次删除之前启用或禁用触发器,这有点复杂,因为它做了很多次

  3. 如何创建删除行的过程/函数?还有其他办法吗?

0 个答案:

没有答案