在sql for Oracle中使用select max fail插入
当使用以下一组INSERT语句时,需要花费很长时间:在sql for Oracle中使用select max fail插入,sql,oracle,insert,Sql,Oracle,Insert,当使用以下一组INSERT语句时,需要花费很长时间: INSERT INTO my_table ( col1, col2, id_col) VALUES ('val1', 'val1', (select max(my_table_ID) from my_table)+1); 如果我一个接一个地运行并提交,那么它工作得很好。原因是什么? 我知道生产中应该使用顺序。但我写这篇文章是为了在toad中插入几行 INSERT INTO my_table ( col1, col2, id_col) VA
INSERT INTO my_table ( col1, col2, id_col) VALUES ('val1', 'val1', (select max(my_table_ID) from my_table)+1);
如果我一个接一个地运行并提交,那么它工作得很好。原因是什么?
我知道生产中应该使用顺序。但我写这篇文章是为了在toad中插入几行
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;
/
但是,我不知道你的任务。。。
可以在插入之前使用序列+触发器?为什么不使用Oracle序列对象呢?糟糕的做法。这种方法会给您带来麻烦。应该使用序列来代替!如果我是对的,那么您是否正在尝试为每个插入创建序列号?@Alfabravo请查看更新的问题。