zoukankan      html  css  js  c++  java
  • 如何在SQLite中创建自增字段

     

     
     
    简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。

        这里是详细的答案: 从 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错误码.
  • 相关阅读:
    js 中的 EventLoop
    线程的并发工具类
    xpath获取某个节点下的全部字节点的文本
    2020中国 .NET开发者大会精彩回顾:葡萄城高性能表格技术解读
    .NET 控件集 ComponentOne V2020.0 Update3 发布,正式支持 .NET 5
    log4net配置
    TP5.1 爬虫
    pip下载慢
    TP5.1 二维码生成
    composer插件集合
  • 原文地址:https://www.cnblogs.com/zhangzhifeng/p/5480948.html
Copyright © 2011-2022 走看看