rowid是伪列,指的是一条记录的物理地址!
oracle里的自增id:
SQL> create sequence a_sequence
2 start with 1
3 increment by 1;序列已创建。SQL> create table t (n number ,v varchar2(10));表已创建。SQL> create or replace trigger t_trg
2 before insert or update on t
3 for each row
4 begin
5 select a_sequence.nextval into :new.n from dual;
6 end;
7 /触发器已创建SQL> insert into t values(111,'ok');已创建 1 行。SQL> select * from t; N V
---------- ----------
1 ok
oracle里的自增id:
SQL> create sequence a_sequence
2 start with 1
3 increment by 1;序列已创建。SQL> create table t (n number ,v varchar2(10));表已创建。SQL> create or replace trigger t_trg
2 before insert or update on t
3 for each row
4 begin
5 select a_sequence.nextval into :new.n from dual;
6 end;
7 /触发器已创建SQL> insert into t values(111,'ok');已创建 1 行。SQL> select * from t; N V
---------- ----------
1 ok
------------------ ---- -- -- ----
AAAA92AABAAADT0AAA 11 2 19 48
AAAA92AABAAADT0AAB 12 2 29 58
AAAA92AABAAADT0AAC 13 2 39 68SQL>
SQL> create table test(
2 col1 number(3),
3 col2 varchar2(10));表已创建。SQL> create sequence seq_test
2 start with 1
3 increment by 1;序列已创建。SQL> insert into test values(seq_test.nextval,'aaa');已创建 1 行。
SQL> insert into test values(seq_test.nextval,'bbb');已创建 1 行。SQL> select * from test; COL1 COL2
---------- ----------
1 aaa
2 bbbSQL>