向数据库里插入新的数据id号为什么不是从头算起??
createsequenceseq_articleincrementby1startwith1;createtablearticle(idintprimarykeynot...
create sequence seq_article increment by 1 start with 1;
create table article(
id int primary key not null,
pid int,
rootid int,
title varchar2(255),
cont varchar2(4000),
pdate date,
isleaf int
);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 0,1,'蚂蚁大战大象','蚂蚁大战大象',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 1,1,'大象被打趴下了','大象被打趴下了',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'蚂蚁也不好过','蚂蚁也不好过',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'瞎说','瞎说',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 4,1,'没有瞎说','没有瞎说',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 1,1,'怎么可能','怎么可能',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 6,1,'怎么没有可能','怎么没有可能',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 6,1,'可能性是很大的','可能性是很大的',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'大象进医院了','大象进医院了',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 9,1,'护士是蚂蚁','护士是蚂蚁',sysdate,0);
COMMIT;
刚开始建表的时候向数据库里插入了这些数据,然后在JSP页面里通过发表新主题又添加了一些新的数据,后来删的时候把上边添加的数据也删了,现在又把insert语句在数据库里执行了一下,插是插上去了,可是id号不是从1开始算的,是从以前加过的数据紧接着id号开始插入的,这是什么情况??? 展开
create table article(
id int primary key not null,
pid int,
rootid int,
title varchar2(255),
cont varchar2(4000),
pdate date,
isleaf int
);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 0,1,'蚂蚁大战大象','蚂蚁大战大象',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 1,1,'大象被打趴下了','大象被打趴下了',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'蚂蚁也不好过','蚂蚁也不好过',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'瞎说','瞎说',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 4,1,'没有瞎说','没有瞎说',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 1,1,'怎么可能','怎么可能',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 6,1,'怎么没有可能','怎么没有可能',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 6,1,'可能性是很大的','可能性是很大的',sysdate,0);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 2,1,'大象进医院了','大象进医院了',sysdate,1);
insert into article (id,pid,rootid,title,cont,pdate,isleaf) values(seq_article.nextval, 9,1,'护士是蚂蚁','护士是蚂蚁',sysdate,0);
COMMIT;
刚开始建表的时候向数据库里插入了这些数据,然后在JSP页面里通过发表新主题又添加了一些新的数据,后来删的时候把上边添加的数据也删了,现在又把insert语句在数据库里执行了一下,插是插上去了,可是id号不是从1开始算的,是从以前加过的数据紧接着id号开始插入的,这是什么情况??? 展开
5个回答
展开全部
数据库自动编号就是这样的,不会因为你删除数据而回滚编号,如果你想实现这个功能的话,就只能先读取最大id,然后存入最大id+1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQLite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为最大的rowid+1。如果表为空,那麼将会插入1。
比如,有一张表ID为自增:
CREATE TABLE Product
(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR(100) NOT NULL
)
那麼,插入的SQL就是:
INSERT INTO Product VALUES(NULL, '产品名称')
GO
(1)当主键设置为自动增长时候,主键数据类型必须是integer类型,不能使long类型。
(2)插入的时候,如果罗列的列中没有自动增长列,自动增长列也是可实现自动增长的。
(3)插入的时候,如果罗列的列中有自动增长列,那么设置为null,可以实现自动增长。
比如,有一张表ID为自增:
CREATE TABLE Product
(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
Name NVARCHAR(100) NOT NULL
)
那麼,插入的SQL就是:
INSERT INTO Product VALUES(NULL, '产品名称')
GO
(1)当主键设置为自动增长时候,主键数据类型必须是integer类型,不能使long类型。
(2)插入的时候,如果罗列的列中没有自动增长列,自动增长列也是可实现自动增长的。
(3)插入的时候,如果罗列的列中有自动增长列,那么设置为null,可以实现自动增长。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
自动累加的就是这样,需要保证数据的唯一性,而唯一性就是用ID标识的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是这样的啊!自动累加吗!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询