gpt4 book ai didi

oracle - 如果在我的应用程序运行时更换 oracle 触发器,我会错过任何更改吗?

转载 作者:行者123 更新时间:2023-12-04 15:58:53 25 4
gpt4 key购买 nike

我想知道如果在使用 oracle 数据库时更换触发器,是否会丢失任何数据。我创建了一个玩具示例,似乎我不会,但我的一位同事声称并非如此。

create table test_trigger (id number);
create table test_trigger_h (id number);
create sequence test_trigger_seq;

--/
create or replace trigger test_trigger_t after insert on test_trigger for each row
begin
insert into test_trigger_h (id) values (:new.id);
end;
/

--/
begin
for i in 1..100000 loop
insert into test_trigger (id) values (test_trigger_seq.nextval);
end loop;
end;
/

--/
begin
for i in 1..10000 loop
execute immediate 'create or replace trigger test_trigger_t after insert on test_trigger for each row begin insert into test_trigger_h (id) values (:new.id); end;';
end loop;
end;
/

ran the two loops at the same time

select count(1) from test_trigger;

COUNT(1)
100000

select count(1) from test_trigger_h;

COUNT(1)
100000

最佳答案

create or replace正在锁定 table 。所以所有的插入都将等到它完成。不要担心错过插入。

关于oracle - 如果在我的应用程序运行时更换 oracle 触发器,我会错过任何更改吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18454052/

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