本文详细介绍SQLite常见问题解答
如何建立自动增长字段?
SQLite支持何种数据类型?
SQLite允许向一个integer型字段中插入字符串!
为什么SQLite不允许在同一个表不同的两行上使用0和0.0作主键?
多个应用程序或一个应用程序的多个实例可以同时访问同一个数据库文件吗?
SQLite线程安全吗?
在SQLite数据库中如何列出所有的表和索引?
SQLite数据库有已知的大小限制吗?
在SQLite中,VARCHAR字段最长是多少?
SQLite支持二进制大对象吗?
在SQLite中,如何在一个表上添加或删除一列?
我在数据库中删除了很多数据,但数据库文件没有变小,是Bug吗?
我可以在商业产品中使用SQLite而不需支付许可费用吗?
如何在字符串中使用单引号(')?
SQLITE_SCHEMA error是什么错误?为什么会出现该错误?
为什么 ROUND(9.95,1) 返回 9.9 而不是 10.0? 9.95不应该圆整(四舍五入)吗?
(1) 如何建立自动增长字段?
简短回答:声明为 INTEGER PRIMARY KEY 的列将会自动增长。
长一点的答案: 如果你声明表的一列为 INTEGER PRIMARY KEY,那么, 每当你在该列上插入一NULL值时, NULL自动被转换为一个比该列中最大值大1的一个整数,如果表是空的, 将会是1。 (如果是最大可能的主键 9223372036854775807,那个,将键值将是随机未使用的数。) 如,有下列表:
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(), 它将返回最近插入的整数值。
来源:豆豆网转载 责编:豆豆技术应用