请问sqlite 如何设置自动增量啊

emosen999 2006-10-08 06:29:44
id integer PRIMARY KEY 用这样定义可以实现自动编号功能,但这个编号却不能通过SELECT ID FROM TABLENAME 显示出来,程序执行时提示“MISSINGMETHOD..."SELECT 其它栏位 ..却能正常执行,,


这是为何??????????要如何解决,
急,,,,谢谢、、、、、、、、、、、、
...全文
1521 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
clinton81 2006-12-02
  • 打赏
  • 举报
回复
创建一个表时,使用 create table 表名( no INTEGER PRIMARY KEY AUTOINCREMENT, .... )
这样创建好的表你就不用去管no字段,每次插入数据时它都自己增加1。
zieckey 2006-11-08
  • 打赏
  • 举报
回复

(1) 如何创建自增字段?

简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。

这里是详细的答案: 从 SQLite 的 2.3.4 版本开始,如果你将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么无论你何时向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。比如,假设你有这样的一张数据表:

CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INTEGER
);

在这张数据表里,声明

INSERT INTO t1 valueS(NULL,123);

在逻辑意义上等价于:

INSERT INTO t1 valueS((SELECT max(a) FROM t1)+1,123);

一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键

注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的,但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.
temolo 2006-10-23
  • 打赏
  • 举报
回复
创建列使用如下语句:
[FID] INTEGER PRIMARY KEY AUTOINCREMENT
emosen999 2006-10-09
  • 打赏
  • 举报
回复
如果是别的什么SQL2K OR ACCESS2K等数据库里这个功能太容易实现了

但用SQLITE怎么这这么麻烦呢,晕S............:(
emosen999 2006-10-09
  • 打赏
  • 举报
回复
不行。。。。。。不懂什么原因。。。。有没有人做成功过

表中定义自动编号栏位。。并SELECT ID FROM T出来成功的吗??没人弄过吗?

akuzou 2006-10-09
  • 打赏
  • 举报
回复
sqlite 不清楚

试试 id integer identity(1,1) primary key
emosen999 2006-10-09
  • 打赏
  • 举报
回复
UP................
emosen999 2006-10-08
  • 打赏
  • 举报
回复
求教。。。。。。。。大家多多指教。。。。。。。。。。。。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧