Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

SQL 教程

SQL 主页 SQL 简介 SQL 语法 SQL 选择 SQL 选择不同 SQL WHERE SQL 排序 SQL AND SQL OR SQL NOT SQL 插入 SQL 空值 SQL 更新 SQL 删除 SQL 选择前多少 SQL 聚合函数 SQL 最小值和最大值 SQL 计数 SQL 求和 SQL 平均值 SQL LIKE SQL 通配符 SQL IN SQL BETWEEN SQL 别名 SQL 联接 SQL 内连接 SQL 左连接 SQL 右连接 SQL 全连接 SQL 自连接 SQL UNION SQL 分组 SQL HAVING SQL EXISTS SQL ANY, ALL SQL SELECT INTO SQL 插入选择 SQL CASE SQL 空值函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 备份数据库 SQL 创建表 SQL 删除表 SQL 修改表 SQL 约束 SQL 非空 SQL 唯一 SQL 主键 SQL 外键 SQL 检查 SQL 默认值 SQL 索引 SQL 自动递增 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考

SQL 示例

SQL 示例 SQL 编辑器 SQL 测验 SQL 练习 SQL Server SQL 集训营 SQL 证书

SQL 自动递增 字段


自动递增字段

自动递增允许在向表中插入新记录时自动生成唯一编号。

通常,这是我们希望每次插入新记录时自动创建的主键字段。


MySQL 语法

以下 SQL 语句将“Personid”列定义为“Persons”表中的自动递增主键字段

CREATE TABLE Persons (
    Personid int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (Personid)
);

MySQL 使用 AUTO_INCREMENT 关键字来执行自动递增功能。

默认情况下,AUTO_INCREMENT 的起始值为 1,并且每插入一条新记录就会递增 1。

要让 AUTO_INCREMENT 序列从另一个值开始,请使用以下 SQL 语句

ALTER TABLE Persons AUTO_INCREMENT=100;

要向“Persons”表中插入一条新记录,我们无需为“Personid”列指定值(会自动添加唯一值)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

上面的 SQL 语句将向“Persons”表中插入一条新记录。“Personid”列将被分配一个唯一值。“FirstName”列将被设置为“Lars”,而“LastName”列将被设置为“Monsen”。


SQL Server 语法

以下 SQL 语句将“Personid”列定义为“Persons”表中的自动递增主键字段

CREATE TABLE Persons (
    Personid int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS SQL Server 使用 IDENTITY 关键字来执行自动递增功能。

在上面的示例中, IDENTITY 的起始值为 1,并且每插入一条新记录就会递增 1。

提示:要指定“Personid”列应从值 10 开始并递增 5,请将其更改为 IDENTITY(10,5)

要向“Persons”表中插入一条新记录,我们无需为“Personid”列指定值(会自动添加唯一值)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

上面的 SQL 语句将向“Persons”表中插入一条新记录。“Personid”列将被分配一个唯一值。“FirstName”列将被设置为“Lars”,而“LastName”列将被设置为“Monsen”。



Access 语法

以下 SQL 语句将“Personid”列定义为“Persons”表中的自动递增主键字段

CREATE TABLE Persons (
    Personid AUTOINCREMENT PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

MS Access 使用 AUTOINCREMENT 关键字来执行自动递增功能。

默认情况下,AUTOINCREMENT 的起始值为 1,并且每插入一条新记录就会递增 1。

提示:要指定“Personid”列应从值 10 开始并递增 5,请将自动递增更改为 AUTOINCREMENT(10,5)

要向“Persons”表中插入一条新记录,我们无需为“Personid”列指定值(会自动添加唯一值)

INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');

上面的 SQL 语句将向“Persons”表中插入一条新记录。“Personid”列将被分配一个唯一值。“FirstName”列将被设置为“Lars”,而“LastName”列将被设置为“Monsen”。


Oracle 语法

在 Oracle 中,代码稍微复杂一些。

您需要使用序列对象(该对象生成数字序列)来创建一个自动递增字段。

使用以下 CREATE SEQUENCE 语法

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

上面的代码创建一个名为 seq_person 的序列对象,该对象从 1 开始并递增 1。它还将缓存最多 10 个值以提高性能。cache 选项指定了将在内存中存储多少个序列值以加快访问速度。

要向“Persons”表中插入一条新记录,我们必须使用 nextval 函数(该函数从 seq_person 序列中检索下一个值)

INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');

上面的 SQL 语句将向“Persons”表中插入一条新记录。“Personid”列将被分配 seq_person 序列的下一个编号。“FirstName”列将被设置为“Lars”,而“LastName”列将被设置为“Monsen”。


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.