AUTO INCREMENT 欄位 (SQL AUTO INCREMENT column)

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(起始值, 遞增量);