当使用下面的一堆 INSERT 语句时,它需要永远:
INSERT INTO my_table ( col1, col2, id_col) VALUES ('val1', 'val1', (select max(my_table_ID) from my_table)+1);
如果我一个一个运行并提交,那么它工作正常。是什么原因?我知道应该在生产中使用序列。但我写这篇文章是为了在蟾蜍中插入几行。
或许
INSERT INTO my_table ( col1, col2, id_col)
VALUES ('val1', 'val1', (select max(my_table_ID)+1 from my_table));
或在 pl/sql 块中
declare
v_max number(10);
begin
select max(my_table_id) + 1 into v_max
from my_table;
insert into my_table ( col1, col2, id_col)
values ('val1', 'val1', v_max);
end;
/
但是,我不知道你的任务......可以在插入之前使用序列+触发器吗?