SQL Server に対応する Oracle は何@@IDENTITY
ですか?
質問する
235 次
1 に答える
2
Oracle には ID 列がないため、通常はテーブルごとにシーケンスを作成し、そのシーケンスを使用して主キーを設定します。それが完了していると仮定するとcurrval
、シーケンスの を取得して、現在のセッションで最後に生成されたシーケンス値を取得できます。
SQL> create table foo(
2 col1 number primary key,
3 col2 varchar2(10)
4 );
Table created.
SQL> create sequence foo_seq;
Sequence created.
SQL> ed
Wrote file afiedt.buf
1 create or replace trigger foo_trg
2 before insert on foo
3 for each row
4 begin
5 :new.col1 := foo_seq.nextval;
6* end;
SQL> /
Trigger created.
SQL> insert into foo( col2 )
2 values( 'foo' );
1 row created.
SQL> insert into foo( col2 )
2 values( 'bar' );
1 row created.
SQL> select foo_seq.currval
2 from dual;
CURRVAL
----------
2
于 2013-04-03T08:09:56.120 に答える