入行不久,向各位高手请教一个问题.用oracle做一个字段自动增长.
表:CREATE TABLE LogUSer (
ID number PRIMARY KEY not null,
type varchar2(20) not null ,
pwd varchar2(10) not null );
我的sequence 这样写的:create sequence loguser_id increment by 1 start with 1;
触发器这样写:CREATE OR REPLACE TRIGGER loguser_tri BEFORE
INSERT
ON loguser
FOR EACH ROW BEGIN
SELECT loguser_id.nextval INTO :new.ID FROM dual;
END;
用了developer.
可是我插入语句是时,第一条纪录的ID不是为1,而是2.
增长也不是1,而是每次增长2.
ID是这样增长的:2,4,6,8,10,....想向大家请教下,应该要送分,可现在我也没有分了,只好厚脸皮了....
表:CREATE TABLE LogUSer (
ID number PRIMARY KEY not null,
type varchar2(20) not null ,
pwd varchar2(10) not null );
我的sequence 这样写的:create sequence loguser_id increment by 1 start with 1;
触发器这样写:CREATE OR REPLACE TRIGGER loguser_tri BEFORE
INSERT
ON loguser
FOR EACH ROW BEGIN
SELECT loguser_id.nextval INTO :new.ID FROM dual;
END;
用了developer.
可是我插入语句是时,第一条纪录的ID不是为1,而是2.
增长也不是1,而是每次增长2.
ID是这样增长的:2,4,6,8,10,....想向大家请教下,应该要送分,可现在我也没有分了,只好厚脸皮了....
SQL> conn test/test
已连接。
SQL> create sequence loguser_id increment by 1 start with 1;序列已创建。SQL> CREATE TABLE LogUSer (
2 ID number PRIMARY KEY not null, 3 type varchar2(20) not null , 4 pwd varchar2(10) not null );表已创建。SQL>
SQL> CREATE OR REPLACE TRIGGER loguser_tri BEFORE
2 INSERT
3 ON loguser
4 FOR EACH ROW BEGIN
5 SELECT loguser_id.nextval INTO :new.ID FROM dual;
6 END;
7 /触发器已创建SQL> insert into LogUSer(type,pwd) values('a','123456');已创建 1 行。SQL> insert into LogUSer(type,pwd) values('b','123456');已创建 1 行。SQL> commit;提交完成。SQL> select * from loguser; ID TYPE PWD
---------- -------------------- ----------
1 a 123456
2 b 123456