首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> SQL 基礎

SQL AUTO INCREMENT 自動遞增完整指南:MySQL、SQL Server、Access、Oracle 四大資料庫語法對照

     編輯:SQL 基礎

SQL AUTO INCREMENT 自動遞增主鍵完整指南


自動遞增 在新記錄插入時自動生成唯一數字,常用於主鍵欄位,免除手動管理 ID 的負擔。


MySQL 語法

CREATE TABLE Persons (
    ID int NOT NULL AUTO_INCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255),
    PRIMARY KEY (ID)
);
  • 關鍵字:AUTO_INCREMENT
  • 預設起始值:1,遞增值:1
  • 修改起始值:ALTER TABLE Persons AUTO_INCREMENT = 100;

插入資料時無需指定 ID:

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

SQL Server 語法

CREATE TABLE Persons (
    ID int IDENTITY(1,1) PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);
  • 關鍵字:IDENTITY(種子, 遞增值)
  • 範例:IDENTITY(10,5) 表示從 10 開始,每次遞增 5

MS Access 語法

CREATE TABLE Persons (
    ID Integer PRIMARY KEY AUTOINCREMENT,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);
  • 關鍵字:AUTOINCREMENT
  • 指定起始/遞增:AUTOINCREMENT(10,5)

Oracle 語法 (使用 Sequence)

Oracle 需透過 Sequence 物件實現:

-- 建立序列
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;

-- 插入資料使用 nextval
INSERT INTO Persons (ID, FirstName, LastName)
VALUES (seq_person.nextval, 'Lars', 'Monsen');
  • CACHE 10:預先緩存 10 個值提升效能
  • 插入時必須顯式呼叫 seq_person.nextval

四大資料庫語法差異較大,遷移時需特別注意。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved