摘要:在本教程中,您将学习如何使用 SQL 自动增量为列定义值,即自动生成的顺序整数。
在设计表时,我们通常使用代理 主键,其值为由数据库系统自动生成的顺序整数。
此主键列被称为 标识 或自动增量列。
当向自动增量列中插入新行时,将使用自动生成的顺序整数进行插入。
例如,如果第一行的值为 1,则第二行的值为 2,依此类推。
有些数据库系统允许你定义起始值和增量值。例如,当起始值为 10,增量值为 20 时,顺序整数为 10、20、30,依此类推。
不同的数据库系统采用不同的方式实现自动增量列。让我们看看 SQL 自动增量列是如何在一些主要的数据库系统中实现的。
MySQL 中的 SQL 自动增量列
MySQL 使用 AUTO_INCREMENT
属性来定义自动增量列。参见以下示例
CREATE TABLE leave_requests (
request_id INT AUTO_INCREMENT,
employee_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
leave_type INT NOT NULL,
PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)
在此示例中,我们创建了一个名为 leave_requests
的新表,其 request_id
为自动增量列。
Oracle 中的 SQL 自动增量列
Oracle 使用 标识列 来创建一个自动增量列,如下所示
CREATE TABLE leave_requests (
request_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
employee_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
leave_type INT NOT NULL,
PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)
PostgreSQL 中的 SQL 自动增量列
类似于 Oracle,PostgreSQL 也使用 标识列 来定义自动增量列
CREATE TABLE leave_requests (
request_id INT GENERATED BY DEFAULT AS IDENTITY,
employee_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
leave_type INT NOT NULL,
PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)
SQL Server 中的 SQL 自动增量列
SQL Server 使用 IDENTITY
属性来定义自动增量列,如下面的查询中所示
CREATE TABLE leave_requests (
request_id INT IDENTITY(1,1),
employee_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
leave_type INT NOT NULL,
PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)
DB2 中的 SQL 自动增量列
像 Oracle,DB2 使用标识列来定义自动增量列
CREATE TABLE leave_requests (
request_id INT GENERATED BY DEFAULT AS IDENTITY,
employee_id INT NOT NULL,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
leave_type INT NOT NULL,
PRIMARY KEY(request_id)
);
Code language: SQL (Structured Query Language) (sql)
在本教程中,您学习了如何使用 SQL 自动增量列为列定义值,即自动生成的顺序整数。
本教程有帮助吗?