标签:03 SQLite 该表 sequence -- 之自 最大值 增列 Student
ID列一定要为自增
然后,系统会自动增加一个sqlite_sequence表,sqlite_sequence表也是SQLite的系统表。该表用来保存其他表的RowID的最大值。数据库被创建时,sqlite_sequence表会被自动创建。该表包括两列。第一列为name,用来存储表的名称。第二列为seq,用来保存表对应的RowID的最大值。该值最大值为9223372036854775807。当对应的表增加记录,该表会自动更新。当表删除,该表对应的记录也会自动删除。如果该值超过最大值,会引起SQL_FULL错误。所以,一旦发现该错误,用户不仅要检查SQLite文件所在的磁盘空间是否不足,还需要检查是否有表的ROWID达到最大值。
以前ID列不是自增,改成自增的步骤:
--1.将表名改为临时表
ALTER TABLE "Student" RENAME TO "_Student_old_20140409"
--2.创建新表
CREATE TABLE "Student" (
"Id" INTEGER PRIMARY KEY AUTOINCREMENT,
"Name" Text)
--3.导入数据
INSERT INTO "Student" ("Id", "Name") SELECT "Id", "Title" FROM "_Student_old_20140409";
INSERT INTO student VALUES(null, 'aaa')--自增列 值 为null
发表于 2020-03-03 09:14 涂磊 阅读(179) 评论(0) 编辑 收藏
标签:03,SQLite,该表,sequence,--,之自,最大值,增列,Student 来源: https://blog.51cto.com/u_15216366/2833233
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。