SQLite的sqlite_sequence表

sqlite_sequence表也是SQLite的系统表。该表用来保存其他表的RowID的最大值。数据库被创建时,sqlite_sequence表会被自动创建。该表包括两列。第一列为name,用来存储表的名称。第二列为seq,用来保存表对应的RowID的最大值。该值最大值为9223372036854775807。当对应的表增加记录,该表会自动更新。当表删除,该表对应的记录也会自动删除。如果该值超过最大值,会引起SQL_FULL错误。所以,一旦发现该错误,用户不仅要检查SQLite文件所在的磁盘空间是否不足,还需要检查是否有表的ROWID达到最大值。

时间: 2024-10-10 13:26:44

SQLite的sqlite_sequence表的相关文章

SQLITE如何选择表类型

Sqlite中表类型主要有普通表,以及WITHOUT ROWID表以及临时表.临时表一般是是查询需要临时存储结果使用.这篇文章主要讨论普通表和WITHOUT ROWID表的区别,以及AUTOINCREMENT的特性. 1.rowid的类型是什么? sqlite中rowid是一个隐身存储的列,8个字节存储,它有两个别名 _ROWID_ 和 OID,类型定义为INTEGER PRIMARY KEY,因此当用户建表时,某列定义为 INTEGER PRIMARY KEY,实质是rowid的别名.rowi

Sqlite如何修改表结构字段类型

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称.数据类型.限定符等等. 改变表名 - ALTER TABLE 旧表名 RENAME TO 新表名 增加一列 - ALTER TABLE 表名 ADD COLUMN 列名 数据类型 而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名

sqlite学习笔记8:C语言中使用sqlite之创建表

前面已经说了如何打开和关闭数据库,这次要说得是如何执行SQL语句,来创建一张表. 要用的的函数: sqlite3_exec(sqlite3* db, const char *sql, sqlite_callback callback, void *data, char **errmsg) 参数: db:已经打开的数据库实例 sql:SQL语句,是一个字符串 callback:是一个回调函数 data:做为回调函数的第一个参数 errmsg:用于带回错误信息 该回调函数有两种返回值类型. 1.返回

Android程序员必掌握的sqlite数据库连表查询

SQL查询的基本原理:两种情况介绍. 第一.   单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 第二.   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表:然后根据WHERE条件过滤中间表的记录,并根据SELECT指定的列返回查询结果. 第三.   多表连接查询:先对第一个和第二个表按照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到所有的表都连

[转]Sqlite数据多表联合update

其实在Mysql中,多表联合update不是什么难事. 语法: UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] 示例: UPDATE table1, table2 SET table1.value=table2.value, a.type=b.type WHERE table1.sid=table2.sid; 同样的,在SqlServer中也可以很简单的用联合

Sqlite数据多表联合update

其实在Mysql中,多表联合update不是什么难事. 语法: 1 UPDATE table_references SET col_name1=expr1 [, col_name2=expr2 ...] [WHERE where_definition] 示例: 1 UPDATE table1, table2 SET table1.value=table2.value, a.type=b.type WHERE table1.sid=table2.sid; 同样的,在SqlServer中也可以很简单

Android程序猿必掌握的sqlite数据库连表查询

SQL查询的基本原理:两种情况介绍. 第一.   单表查询:依据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后依据SELECT的选择列选择对应的列进行返回终于结果. 第二.   两表连接查询:对两表求积(笛卡尔积)并用ON条件和连接连接类型进行过滤形成中间表:然后依据WHERE条件过滤中间表的记录,并依据SELECT指定的列返回查询结果. 第三.   多表连接查询:先对第一个和第二个表依照两表连接做查询,然后用查询结果和第三个表做连接查询,以此类推,直到全部的表都连

python在sqlite动态创建表源码

代码之余,将开发过程中经常用的代码片段备份一下,如下的代码是关于python在sqlite动态创建表的代码,应该能对各位有所用. import sqlite3 as db conn = db.connect('mytest.db')cursor = conn.cursor()cursor.execute("create table person(name text, age text, address text)")print("table created") 原文

SQLite Expert 删除表数据并重置自动增长列

用下面的语句肯定是行不通的,语句不支持 truncate table t_Records 方法:1.删除表数据 delete from t_Records where 1==1 2.重置自动增长列 update sqlite_sequence set seq=0 where name='t_Records' /*name :是表名*/ SQLite Expert软件网址:  http://www.sqliteexpert.com/