AUTO INCREMENT 欄位 (SQL AUTO INCREMENT column)

AUTO INCREMENT 欄位會自動遞增資料行的值,因為每次新增資料時欄位值都會自動遞增也就是說 AUTO INCREMENT 欄位值會是唯一的,該欄位用途就像是一個識別碼或流水號,而 AUTO INCREMENT 常與 Primary Key 一起搭配使用。

設定 AUTO INCREMENT 欄位

MySQL

CREATE TABLE customers (
  C_Id INT AUTO_INCREMENT,
  Name varchar(50),
  Address varchar(255),
  Phone varchar(20),
  PRIMARY KEY (C_Id)
);

MySQL 語法使用 AUTO_INCREMENT 這關鍵字。注意要將 AUTO_INCREMENT 欄位指定為 PRIMARY KEY,否則會有錯誤!

新增一筆資料:

INSERT INTO customers (Name, Address, Phone)
VALUES ('姓名XXX', '地址XXX', '電話XXX');

C_Id 欄位不需要指定值,MySQL 預設會由1開始逐列自動遞增 (2, 3, 4...)。不過你也可以替 AUTO_INCREMENT 欄位指定一個起始值,語法如下:

ALTER TABLE table_name AUTO_INCREMENT=起始數字;

SQL Server

CREATE TABLE customers (
  C_Id INT IDENTITY PRIMARY KEY,
  Name varchar(50),
  Address varchar(255),
  Phone varchar(20)
);

SQL Server 語法使用 IDENTITY 這關鍵字。

新增一筆資料:

INSERT INTO customers (Name, Address, Phone)
VALUES ('姓名XXX', '地址XXX', '電話XXX');

SQL Server 預設會由1開始逐列自動遞增 (2, 3, 4...)。不過你也可以替 IDENTITY 欄位指定一個起始值與遞增量,語法如下:

將 IDENTITY 改成 IDENTITY(起始值, 遞增量)

Oracle

Oracle 比較不一樣,我們需要先建立一個 Sequence,然後遞增值則從這個 Sequence 抓。

Sequence 建立語法:

CREATE SEQUENCE sequence_name
START WITH 1     --設定起始值
INCREMENT BY 1;  --設定遞增量

新增一筆資料:

INSERT INTO customers (C_Id, Name, Address, Phone)
VALUES (sequence_name.NEXTVAL ,'姓名XXX', '地址XXX', '電話XXX');

NEXTVAL 用來取得下一個值。

MS Access

CREATE TABLE customers (
  C_Id INT PRIMARY KEY AUTOINCREMENT,
  Name varchar(50),
  Address varchar(255),
  Phone varchar(20)
);

Access 語法使用 AUTOINCREMENT 這關鍵字。

新增一筆資料:

INSERT INTO customers (Name, Address, Phone)
VALUES ('姓名XXX', '地址XXX', '電話XXX');

Access 預設會由 1 開始逐列自動遞增 (2, 3, 4...)。不過你也可以替 AUTOINCREMENT 欄位指定一個起始值與遞增量,語法如下:

將 AUTOINCREMENT 改成 AUTOINCREMENT(起始值, 遞增量)