摘要:在本教程中,您將學習如何使用 SQL 自增來定義一個列,該列的值是自動生成的順序整數。
在設計表時,我們經常使用代理主鍵,其值是由資料庫系統自動生成的順序整數。
這個主鍵列被稱為標識列或自增列。
當向自增列中插入新行時,會使用一個自動生成的順序整數進行插入。
例如,如果第一行的值是 1,那麼第二行的值就是 2,依此類推。
一些資料庫系統允許您定義起始值和增量值。例如,當起始值為 10,增量值為 10 時,生成的順序整數將是 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 自增列來定義一個值是自動生成的順序數字的列。
本教程是否有幫助?