1

以下のように一連のINSERTステートメントを使用すると、永久に時間がかかります。

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

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 に答える