【发布时间】:2017-06-26 08:29:09
【问题描述】:
我正在尝试创建一个触发器(或类似的东西),当更新一行时插入一个新行。 场景是:我有一张每个月应该完成的任务表。当任务设置为完成时(这是更新语句),我希望创建一个新任务,具有相同的参数但日期不同。 所以我在想一个更新后触发器,它会在同一个表上触发一个插入语句,但 oracle 不允许这样做。
有什么好的方法来实现这个目标?
提前致谢。
【问题讨论】:
标签: sql oracle triggers insert
我正在尝试创建一个触发器(或类似的东西),当更新一行时插入一个新行。 场景是:我有一张每个月应该完成的任务表。当任务设置为完成时(这是更新语句),我希望创建一个新任务,具有相同的参数但日期不同。 所以我在想一个更新后触发器,它会在同一个表上触发一个插入语句,但 oracle 不允许这样做。
有什么好的方法来实现这个目标?
提前致谢。
【问题讨论】:
标签: sql oracle triggers insert
您遇到的错误是什么?如果它是变异表,则有一些解决方法,但它们很笨拙。如果您真的想这样做,请参阅this AskTom thread。但是,除非绝对必要,否则我建议不要使用触发器。只要我们链接到 Tom Kyte,请参阅他的文章“The Trouble with Triggers”。
您可以在代码中执行更新,只需在状态设置为完成后执行插入即可。我认为这是一个更好的解决方案,除非有什么阻止它。
【讨论】: