如何在SQLite中创建自增字段

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

时间: 2024-10-04 19:52:26

如何在SQLite中创建自增字段的相关文章

Oracle中创建自增字段方法

oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 下面给大家讲个例子: 1.在Oracle中创建一个表: 1.创建一个表 create table t_client (id number(4) primary key, pid number(4) not null, name varchar2(30) not null, client_id varchar2(10), client_level char(3), bank_acc

Oracle中创建自增字段(序列sequence)方法

oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现. 下面给大家讲个例子: 1.在Oracle中创建一个表: 1.创建一个表 create table t_client (id number(4) primary key, pid number(4) not null, name varchar2(30) not null, client_id varchar2(10), client_level char(3), bank_acc

sqlite3自增key设定(创建自增字段)

在用sqlite设计表时,每个表都有一个自己的整形id值作为主键,其实可以不指定这 么一个id值,sqlite内部本来就会为每个表加上一个 rowid,这个rowid可以当成一个隐含的字段使用,但是由sqlite引擎来维护的,在 3.0以前rowid是32位的整数,3.0以后是 64位的整数,为什么不直接使用这个内部的rowid作为每个表的id主键呢. 相关的文档在这里:?http://www.sqlite.org/autoinc.html?http://www.sqlite.org/faq.h

如何在MyEclipse中创建servlet3.0

servlet3.0随着Java EE6规范一起发布,那么如何在MyEclipse中创建3.0版的servlet呢? 1.启动MyEclipse,获得下图: 2.点击上图"File"工具栏,获得下图: 3.将鼠标移到"New Alt+Shift+N",然后再选中并点击红框框定的"Web Project"选项,获得下图: 4.对上图进行如下操作: a."Project Name"(蓝框框定处)输入创建的项目名:此处输入test;

如何在ChemScript中创建脚本文件

ChemScript是一个化学信息学软件开发工具包(SDK),它包含的编程算法在珀金埃尔默产品中较为常见.本文将讲解如何在ChemBioOffice中的ChemScript申请创建自己的脚本文件. ChemScript的所有脚本文件范例都可以在Python和C#/.NET中获取.如果你熟悉这些语言,你会发现这些脚本很容易理解.但是如果你刚刚接触C#/.NET或Python,我们建议你参考相关的网站和书籍.ChemScript在Python和C#/.NET都可用,而在本教程中我们将使用Python

【MAVEN】如何在Eclipse中创建MAVEN项目

目录结构: contents structure [-] 1,Maven简介 2,Maven安装 2.1,下载Maven 2.2,配置环境变量 2.3,测试 3,Maven仓库 3.1,Maven仓库的工作原理 3.2,修改Maven仓库 4,Eclipse和Maven整合的配置 5,Eclispe中创建Maven项目 5.1,在Eclispe中使用Maven搭建Spring MVC 6,Eclipse中使用MAVEN管理的Web分布式开发 6.1,创建父模块 6.2,创建子模块 1,MAVEN

如何在Swift中创建自定义控件

更新通知:这篇引导教程由Mikael Konutgan使用iOS 8和Swift语言重新制作,在Xcode6和7上测试通过.原始教程是由Colin Eberhardt团队制作的. 用户界面控件是许多应用的重要组成部分.使用这些控件,可以让用户查看应用的内容或与他们的应用进行交互.苹果提供了一个控件集,像UITextField, UIButton 和 UISwitch.灵活使用这些工具箱中已经存在的控件,可以让你创建各种各样的用户界面. 但是,有的时候你可能需要做一些与众不同的事情:库中的控件已经

在oracle中创建自动增长字段

参考http://www.cnblogs.com/jerrmy/archive/2013/03/13/2958352.html oracle在创建表时和其他的数据库有点不一样,如SQL SERVER可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置为主键,有利于我们进行数据的插入操作.MySql中可以使用"auto_increment"即可.但是oracle有点麻烦,需要使用序列和触发器达到目的. 首先我们创建一个员工表. c

Oracle创建自增字段和修改方法-ORACLE SEQUENCE的简单介绍

http://blog.csdn.net/zhoufoxcn/article/details/1762351先假设有这么一个表: create table S_Depart  (    DepartId             INT                             not null,    DepartName           NVARCHAR2(40)                   not null,    DepartOrder          INT