易截截图软件、单文件、免安装、纯绿色、仅160KB

SQLITE数据表主键设置Id自增方法

    搞定了一个困扰许久的问题,原来sqlite中的主键也是可以设置为自增的:)方法就是声明为 INTEGER PRIMARY KEY 的字段可以自动增加。
    网上查到资料说,从 SQLite 的 2.3.4 版本开始,如果将一个表中的一个字段声明为 INTEGER PRIMARY KEY,那么只需向该表的该字段插入一个 NULL 值,这个 NULL 值将自动被更换为比表中该字段所有行的最大值大 1 的整数;如果表为空,那么将被更换为 1。
CREATE TABLE "ProcessList"(
[Id] integer(4) PRIMARY KEY
,[Type] varchar(20)
,[Name] varchar(30)
,[IsUse] int
 
)
    执行
insert into processlist
values
(null,'a','b',1)
    在逻辑意义上等价于:
insert into processlist VALUES((SELECT max(Id) from processlist)+1, 'a','b',1);
insert into processlist
values
(null,'aa','bb',1)
    执行两条插入语句后再查询表中数据:
select * from processlist
    结果如下:
Id Type Name IsUse
1  a       b       1 
2  aa     bb     1 
    一个新的API函数 sqlite3_last_insert_rowid() 返回最近的插入操作的整形键.注意这个整型键始终比之前插入表中的最后一个键大1。新键相对于表中的已有键来说是唯一的, 但它可能与之前从表中删除的键值重叠。要始终得到在整个表中唯一的键,在INTEGER PRIMARY KEY的声明之前加关键词AUTOINCREMENT.这样被选的键将总是比表中已存在的最大键大1。若可能的最大键已存在于表中,INSERT操作将失败并返回一个SQLITE_FULL错误码.


相关文档:

sqlite关闭数据库,清除连接池

从网上找的例子,创建了一个数据库,追加了几条记录后,然后关闭数据库,然后准备向PDA下载数据库,发现文件竟然被占用了,已经关闭了数据库连接也无效,后来从网上看到需要清除连接池
using (SQLiteConnection cn = new SQLiteConnection("Data Source=" + strTempPath + "\\Smoke.db3;Pooling=true;FailIfMissing=false ......

SQLite操作指南(SQLite version 3.6.21)

1、.back ?DB? FILE  备份DB(默认为main)到文件
2、.bail ON|OFF  遇到一个错误扣停止,该值默认为OFF
3、.databases  列举附加到数据库的数据库名和文件名
4、.dump ?TABLE? ...  用SQL文本格式列举数据库,如果指定TABLE,仅仅列举匹配的表,LIKE类型TABLE
5、.echo ON|OFF  设置echo的状态 ......

SQLITE入门 逐步讲解SQLITE命令行(二)

可以接着上一步操作,直接向DOS窗口输入.help命令来查看SQLite的所有命令行及解释如下:
F:\>sqlite3
SQLite version 3.6.16
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .help
也可以ctrl+c结束命令,想DOS窗口 输入sqlite3执行后再输入.help命令如下:
F:\>sqli ......

SQLITE入门 逐步讲解SQLITE命令行(四)

.dump ?TABLE? ... 以SQL语句方式显示表的结构。如:
sqlite> .dump websties
BEGIN TRANSACTION;
COMMIT;
sqlite> .dump websites
BEGIN TRANSACTION;
CREATE TABLE [websites] (
[WebID] INTEGER NOT NULL PRIMARY KEY,
[WebName] VARCHAR(20) NULL
);
INSERT INTO "websites" VALUES(1,'CTOChina.net'); ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号