【发布时间】:2017-02-02 13:05:55
【问题描述】:
我要问的问题已经存在了。但我没有答案。
请参考以下链接。 ORACLE TRIGGER INSERT INTO ... (SELECT * ...)
我在一个表中有大约 600 列。在此表中每次插入后,我需要在另一个备份表中插入 新行。
请说明如何在触发器中使用“INSERT INTO TABLE_NAME2 SELECT * FROM TABLE_NAME1”查询。
注意:不要在插入或选择子句中指定列
两个表的结构相同。在触发器中指定所有列名很困难,而且如果添加了新列,我们也需要在触发器中添加。
【问题讨论】:
-
也许制作一个在表 2 中插入数据的过程会更容易?
-
@Tenzin - 不,这个插入是通过网页。所以包在这里不适用。
-
@Krzosik - 那里大约有 600 列。你想让我把所有的列名都写上吗?
-
如果业务逻辑在数据库中并且您只是调用了一个过程来插入 table_1 记录,这将不是问题。然后,该过程将实现“当 table_1 记录创建时,在 table_2 中创建备份”的业务逻辑。这很容易,业务数据的逻辑将与业务数据一起使用。触发器只是一种将业务逻辑分散在错误位置的解决方法。