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