我的思路是用1~10
专注于为中小企业提供网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业南涧免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
减去
除了断点以外的ID,
然后查找(断点ID-1)
那一行的记录。这个脚本具有可扩展性。当你取的是100或者其他数值也可以。我用的数据库是oracle。具体做法:
1
新建一张表B,
为了存全部的1
~10
CREATE
table
B
as
select
ID
FROM
A
where
1=2;
2
向B表中插入1~10,
C表是数据库中任意表要求至少有11行数据,为了取rownum
insert
into
B
select
rownum
from
C
where
rownum
11;
3
查找断点
select
*
from
A
where
ID
IN
(select
ID
-1
from
B
where
ID
not
in
(select
ID
from
A)
)
;
一、主键id自增
oracle 中不能设置自动增加,这个和其他数据库不一样,但是有 序列,这个是Oracle自己特有的东西,
1、首先创建序列:create sequence seq;
语法:
CREATE SEQUENCE 序列名
[INCREMENT BY n] --每次加几
[START WITH n] --序列从几开始
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}] --小值、大值限制
比CREATE SEQUENCE seq start with 1 increment by 1; --建立了额从1开始每次加1序列
访问序列时用 序列名称.nextval语法
这就创建好了,然后 seq.nextval 就会返回一个值,不会重复的值,
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
insert into tablename values(seq.nextval,'test');
这样前3个id 分别是 1,2,3
oracle没有数组 但是可以在9i以上的版本使用select wmsys.wm_concat(id) id from student 来实现以逗号分割的形式
取得Oracle当前会话的ID(Session ID)有3种方法:
1. 下面这个应当是大家常用的.
SQL SELECT SID FROM V$MYSTAT WHERE ROWNUM =1;
SID
----------
140
2. 下面一个更简单, 但只能在Oracle 10g及以上版本中使用.
SQL SELECT USERENV('SID') FROM DUAL;
USERENV('SID')
--------------
140
3. 下面这个方法我有时也用, 因为不想用最上面的SQL去写一个子查询, 发现在Oracle 9i上很正常, 但在Oracle 10g上常常返回两行, 因此不能再使用它了.
SQL SELECT SID FROM V$SESSION WHERE AUDSID=USERENV('SESSIONID');
SID
----------
140
142