Oracle触发器在循环中从另一个表插入值

时间:2013-11-12 16:38:43

标签: oracle

在tableA中,我有一个ID字段,我想在插入tableA时成为tableB的值。但是,对于输入的每条记录,它应循环遍历tableB中的所有值。因此,如果我在tableB中有0,1,2,3的id,那么在第一次插入tableA时它将分配tableB值0,在第二次插入时它应该使用tableB 1,然后是2,然后是3,然后返回0,并且只是像这样循环循环。

我猜我需要一个表来跟踪哪一个应该是下一个值,然后在我的触发器中使用该值然后获取下一个值用于下一个插入触发器。在存储过程之外,有没有其他人可以考虑这样做?

1 个答案:

答案 0 :(得分:0)

根据我的理解,您尝试将TableB中的数据加载到TableA中,并循环使用TableB中的ID。 如果TableB中的数据是您要将其加载到TableA的历史数据,那么您需要存储过程,其中光标位于内部,以便您可以执行从B到A的初始增量加载。在这种情况下,您不需要另一个表,因为您在存储过程中使用Cursor。

如果要在TableB上插入或更新时填充TableA,则可以在TableB上使用触发器。