更新后插入行的Oracle触发器

时间:2017-02-08 16:00:42

标签: sql oracle triggers insert

我正在尝试创建一个触发器(或类似的东西),在更新一行时插入一个新行。 场景是:我有一个应该每个月完成的任务表。当任务设置为完成(这是更新语句)时,我想要创建一个新任务,具有相同的参数但是日期不同。 所以我想到了一个更新后的触发器,它将一个insert语句激发到同一个表上,但是oracle不会允许这样做。

实现这个目标的好方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您遇到的错误是什么?如果它是变异表,则有变通方法,但它们很笨拙。如果你真的想这样做,请参见this AskTom thread。但是,除非绝对必要,否则我会建议不要使只要我们链接到Tom Kyte,请参阅他的文章" The Trouble with Triggers"。

您可以在执行更新的代码中执行操作,只需在状态设置为完成后执行插入操作即可。我认为这是一个更好的解决方案,除非事情排除它。