zoukankan      html  css  js  c++  java
  • SQLite学习之自增列(03)

    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
  • 相关阅读:
    DB2创建序列
    hibernate注解影射表
    自定义异常类一
    【JVM】java方法区
    【JVM】java棧
    (2)java堆内存
    (1)java虚拟机概念和结构图
    枚举应用五
    设计模式之命令模式学习理解
    eclipse中javadoc给项目生成api文档
  • 原文地址:https://www.cnblogs.com/tulater/p/12400504.html
Copyright © 2011-2022 走看看