CREATE SEQUENCE FZBG.RD_LXPB_CORRESPONDENCE_SEQU
START WITH 4201
MAXVALUE 999999999999999999
MINVALUE 1
NOCYCLE
CACHE 100
NOORDER;主键不是自动加1,都是一百一百的往上蹦请教下,哪里错了。。怎么修改
还有让主键重新从1开始排列。。怎么弄
START WITH 4201
MAXVALUE 999999999999999999
MINVALUE 1
NOCYCLE
CACHE 100
NOORDER;主键不是自动加1,都是一百一百的往上蹦请教下,哪里错了。。怎么修改
还有让主键重新从1开始排列。。怎么弄
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
cache 100;
(
LXID NUMBER(20) NOT NULL,
LXDW VARCHAR2(50 BYTE),
SXSJ DATE,
LXR VARCHAR2(50 BYTE),
XXDH VARCHAR2(800 BYTE),
LXZT VARCHAR2(1000 BYTE),
LXNR CLOB,
YSBH VARCHAR2(50 BYTE),
BH VARCHAR2(50 BYTE),
CLZT VARCHAR2(50 BYTE),
CKZT VARCHAR2(50 BYTE),
ORG_ID VARCHAR2(50 BYTE)
)
SQL> drop sequence RD_LXPB_CORRESPONDENCE_SEQU;序列已丢弃。SQL> CREATE SEQUENCE RD_LXPB_CORRESPONDENCE_SEQU
2 START WITH 4201
3 MAXVALUE 999999999999999999
4 MINVALUE 1
5 NOCYCLE
6 CACHE 100
7 NOORDER; 序列已创建。
SQL> CREATE TABLE RD_LXPB_CORRESPONDENCE
2 (
3 LXID NUMBER(20) NOT NULL,
4 LXDW VARCHAR2(50 BYTE),
5 SXSJ DATE,
6 LXR VARCHAR2(50 BYTE),
7 XXDH VARCHAR2(800 BYTE),
8 LXZT VARCHAR2(1000 BYTE),
9 LXNR CLOB,
10 YSBH VARCHAR2(50 BYTE),
11 BH VARCHAR2(50 BYTE),
12 CLZT VARCHAR2(50 BYTE),
13 CKZT VARCHAR2(50 BYTE),
14 ORG_ID VARCHAR2(50 BYTE)
15 );表已创建。SQL> insert into RD_LXPB_CORRESPONDENCE(LXID) select RD_LXPB_CORRESPONDENCE_SEQU.NEXTVAL from dual;
已创建 1 行。
SQL> select lxid from RD_LXPB_CORRESPONDENCE; LXID
----------
4201SQL> insert into RD_LXPB_CORRESPONDENCE(LXID) select RD_LXPB_CORRESPONDENCE_SEQU.NEXTVAL from dual;
已创建 1 行。SQL> select lxid from RD_LXPB_CORRESPONDENCE; LXID
----------
4201
4202没有问题啊,可能是程序问题,序列跳号了,比如很多人同时访问时,都从4201~4310中的一段序号,但只有拿到4301那个人插了数据
2)以下是我自己在Sql plus里做的测试
SQL> create sequence test_seq
2 increment by 1
3 minvalue 1
4 start with 1
5 nomaxvalue
6 nocycle
7 nocache
8 /SQL> create table test2
2 (id number(6) primary key,
3 name varchar2(20));表已创建。SQL> create or replace trigger trg_test_id
2 before insert
3 on test2
4 for each row
5 begin
6 select test_seq.nextval into :new.id from dual;
7 end;
8 /触发器已创建SQL> insert into test2(name)
2 values('&name');我是先添加了4个记录,然后conn system/password 再转到当前用户继续添加数据2个记录
又退出Oracle继续追加数据2个记录
结果如下:连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining optionsSQL> select * from test2; ID NAME
---------- --------------------
1 shen
2 liang
3 hello
4 word
5 java
6 delphi已选择6行。SQL> insert into test2(name)
2 values('&name');
输入 name 的值: c#
原值 2: values('&name')
新值 2: values('c#')已创建 1 行。SQL> /
输入 name 的值: Grails
原值 2: values('&name')
新值 2: values('Grails')已创建 1 行。SQL> select * from test2; ID NAME
---------- --------------------
1 shen
2 liang
3 hello
4 word
5 java
6 delphi
7 c#
8 Grails已选择8行。
设nocache就可以了