菜单
×
   ❮     
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 Select SQL Select Distinct SQL Where SQL Order By SQL And SQL Or SQL Not SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Aggregate Functions SQL Min and Max SQL Count SQL Sum SQL Avg SQL Like SQL Wildcards SQL In SQL Between SQL Aliases SQL Joins SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL Self Join SQL Union SQL Group By SQL Having SQL Exists SQL Any, All SQL Select Into SQL Insert Into Select SQL Case SQL Null Functions SQL Stored Procedures SQL Comments SQL Operators

SQL 数据库

SQL Create DB SQL Drop DB SQL Backup DB SQL Create Table SQL Drop Table SQL Alter Table SQL Constraints SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL Auto Increment SQL Dates SQL Views SQL Injection SQL Hosting SQL Data Types

SQL 参考

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

SQL 示例

SQL 示例 SQL 编辑器 SQL 测验 SQL 练习 SQL Server SQL Bootcamp SQL 证书

SQL 自动递增字段


自动递增字段

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

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


MySQL 语法

以下 SQL 语句定义了 "Persons" 表中的 "Personid" 列为一个自动递增主键字段。

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 语句定义了 "Persons" 表中的 "Personid" 列为一个自动递增主键字段。

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 语句定义了 "Persons" 表中的 "Personid" 列为一个自动递增主键字段。

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 中,代码会稍微复杂一些。

您必须使用 sequence 对象创建一个自动递增字段(此对象会生成一个数字序列)。

使用以下 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"。


×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持