从PL / SQL Procedure删除记录时,我需要在备份表中创建已删除记录的副本。哪种方法更好-触发器,存储过程,插入语句或其他方法。
答案 0 :(得分:0)
一些想法:
“触发或存储过程或insert语句,或者有其他方法。” 使用触发器,您将在另一个表中进行插入。因此,第三个不是新选项。
如果可以管理表上的所有dml,那么可以通过存储过程来执行,但是请确保它是唯一点,代码应放在一个地方,而不是在多个过程中传播。从这个角度来看,触发器是更好的,因为您不能跳过它。
在另一边。如果您进行批量删除,最好有一个存储过程,因为触发器会降低dml的速度。使用存储的proc,您可以对批量进行单独处理。
这取决于您要克服的问题。
答案 1 :(得分:0)
另一种方法是根本不删除记录,而是将其标记为已删除。当然,该应用程序的其余部分无需选择标记为已删除的记录。 在现有应用程序中可能不是可行的选择。