選單
×
   ❮     
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 提供支援