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错误码.
当然可以的;请参考 http://sqlite.org/syntaxdiagrams.html#alter-table-stmtexample:
sqlite>.schema
CREATE TABLE tb (id integer primary key, name varchar(32))
sqlite>alter table tb add column store varchar(256)
sqlite>.schema
CREATE TABLE tb (id integer primary key, name varchar(32), store varchar(256))
sqlite>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)