sqlite3 insert 字段顺序

sqlite3 insert 字段顺序,第1张

调整字段顺序,看你往什么方向调整。基本思路是:在数据量少的情况下,调整都比较快。 数据量大,一般倾向于先建新表,导入数据,再删旧表。理想的字段顺序是:简单的,短值 字段在前,复杂的。SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。NSERT INTO 语句有两种基本语法,如下所示:INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] ;VALUES (value1, value2, value3,...valueN)在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。SQLite 的 INSERT INTO 语法如下:INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN)。

从 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错误码.

当然可以的;请参考 http://sqlite.org/syntaxdiagrams.html#alter-table-stmt

example:

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>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11976517.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存