gpt4 book ai didi

oracle - 在 Oracle 中创建备份表触发器

转载 作者:行者123 更新时间:2023-12-04 18:21:21 32 4
gpt4 key购买 nike

我有一个表 A 由一个应用程序不断更新(插入语句)。我想创建另一个表 B,它只包含表 A 的几列。为此,我想创建一个在表 A 上插入后触发的触发器,但我不知道应该如何在触发器中编写插入语句。我不是数据库专家,所以我可能遗漏了一些简单的东西。请帮忙。

这是我的触发代码:

    CREATE OR REPLACE TRIGGER "MSG_INSERT_TRIGGER" 

AFTER
insert on "ACTIVEMQ_MSGS"

DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
begin
execute immediate 'truncate table MSG_BACKUP';
insert into MSG_BACKUP select * from ACTIVEMQ_MSGS;
COMMIT;
end;

最佳答案

这似乎不是一个好主意:每次在表 A 中插入新记录时,删除表 B 中的所有内容并复制表 A 中的所有记录。一旦表 A 中有很多记录,这将是一个巨大的性能问题。

在表 A 的所需列上创建 View 还不够吗?

如果没有,也就是说,您仍然想将所有插入“记录”到另一个表中,那么就可以了。 (我想你想复制以下字段:f1、f2、f3)

CREATE OR REPLACE TRIGGER TR_AI_ACTIVEMQ_MSGS
AFTER INSERT ON ACTIVEMQ_MSGS
FOR EACH ROW
BEGIN
INSERT INTO MSG_BACKUP (f1, f2, f3)
VALUES (:new.f1, :new.f2, :new.f3);
END TR_AI_ACTIVEMQ_MSGS;

关于oracle - 在 Oracle 中创建备份表触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10617481/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com