SQL Auto Increment 学习笔记

一、什么是自增长?

在 SQL 数据库中,使用自增长(Auto Increment)来定义一个在插入时自动增加的数值列。一般用于主键的创建,在每次插入数据时,自动为表格中的某个字段增加一个递增的数字。

二、如何创建自增列?

方法一:MySQL 自增列

在 MySQL 中,当我们创建一个表时,可以通过在某个字段后添加 AUTO_INCREMENT 来指定自增长。例如:

sqlCopy Code
CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age INT NOT NULL, PRIMARY KEY (id) );

在以上代码中,我们使用 AUTO_INCREMENT 指定了 id 字段为自增长列,并将其作为主键。

方法二:SQLite 自增列

在 SQLite 中,我们可以在字段设置中使用 INTEGER PRIMARY KEY AUTOINCREMENT 来指定自增长。例如:

sqlCopy Code
CREATE TABLE user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL );

在以上代码中,我们使用 AUTOINCREMENT 指定了 id 字段为自增长列,并将其作为主键。

三、如何获取自增长的值?

当插入一条新记录时,我们可以通过 LAST_INSERT_ID() 函数获取自增长列的值。

例如,我们插入一条记录:

sqlCopy Code
INSERT INTO user (name, age) VALUES ('Tom', 18);

可以使用以下函数获取自增长列 id 的值:

sqlCopy Code
SELECT LAST_INSERT_ID();

以上 SQL 语句将会返回插入记录后的最新 id 值。

四、如何设置起始值和自增步长?

在 MySQL 中,我们可以使用 AUTO_INCREMENT 后跟一个整数来指定起始值,例如:

sqlCopy Code
CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, age INT NOT NULL, PRIMARY KEY (id) ) AUTO_INCREMENT = 100;

以上代码将会从 100 开始自增。

在 SQLite 中,我们可以使用 INCREMENT BY 来指定自增步长,例如:

sqlCopy Code
CREATE TABLE user ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER NOT NULL ) INCREMENT BY 2;

以上代码将会让 id 自增 2,例如第一条记录的 id 将为 1,第二条记录的 id 将为 3

五、总结

本篇学习笔记介绍了 SQL 数据库中自增长功能的使用方法,并提供了 MySQL 和 SQLite 两种数据库在创建自增列时的演示代码。同时,我们还讲解了如何获取自增长列的值以及如何设置其起始值和自增步长。希望对大家学习 SQL 数据库有所帮助。