1

当使用下面的一堆 INSERT 语句时,它需要永远:

INSERT INTO my_table ( col1, col2, id_col) VALUES ('val1', 'val1', (select max(my_table_ID) from my_table)+1);

如果我一个一个运行并提交,那么它工作正常。是什么原因?我知道应该在生产中使用序列。但我写这篇文章是为了在蟾蜍中插入几行。

4

1 回答 1

2

或许

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;
/

但是,我不知道你的任务......可以在插入之前使用序列+触发器吗?

于 2013-01-29T17:42:24.157 回答