ฟิลด์ AUTO INCREMENT ใน SQL

  • หน้าก่อนหน้า SQL Alter
  • หน้าต่อไป SQL View

Auto-increment จะสร้างเลขเด็ดขาดหนึ่งเดียวเมื่อบันทึกใหม่ถูกแทรกลงในตาราง。

ฟิลด์ AUTO INCREMENT

เรามักต้องการที่จะสร้างค่าของฟิลด์หลักโดยอัตโนมัติในแต่ละครั้งที่เพิ่มบันทึกใหม่

เราสามารถสร้างฟิลด์ auto-increment ในตาราง

สyntax สำหรับ MySQL

SQL ประมาณการดังต่อไปนี้จะกำหนดคอลัมน์ "P_Id" ในตาราง "Persons" ให้เป็น auto-increment หลัก:

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL ใช้คำสั่ง AUTO_INCREMENT สำหรับงาน auto-increment

โดยปกติ AUTO_INCREMENT จะเริ่มต้นที่ 1 และเพิ่มขึ้น 1 ต่อบันทึกใหม่

เพื่อที่จะให้ AUTO_INCREMENT หลักคู่ที่เริ่มต้นด้วยค่าอื่น โปรดใช้ SQL ประมาณการดังต่อไปนี้:

ALTER TABLE Persons AUTO_INCREMENT=100

เพื่อที่จะเพิ่มบันทึกใหม่ในตาราง "Persons" พวกเราไม่จำเป็นต้องกำหนดค่าสำหรับคอลัมน์ "P_Id" (ค่าจะถูกเพิ่มเองโดยอัตโนมัติ):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

คำสั่ง SQL ด้านบนจะใส่บันทึกใหม่ลงในตาราง "Persons" ค่า "P_Id" จะได้รับค่าเด็ดขาด ค่า "FirstName" จะมีค่าเป็น "Bill" และค่าของคอลัมน์ "LastName" จะมีค่าเป็น "Gates"

สyntax สำหรับ SQL Server

SQL ประมาณการดังต่อไปนี้จะกำหนดคอลัมน์ "P_Id" ในตาราง "Persons" ให้เป็น auto-increment หลัก:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL ใช้คำสั่ง IDENTITY สำหรับงาน auto-increment

โดยปกติ IDENTITY จะเริ่มต้นที่ 1 และเพิ่มขึ้น 1 ต่อบันทึกใหม่

เพื่อกำหนดให้คอลัมน์ "P_Id" เริ่มต้นที่ 20 และเพิ่มขึ้น 10 โปรดเปลี่ยน identity ให้เป็น IDENTITY(20,10)

เพื่อที่จะเพิ่มบันทึกใหม่ในตาราง "Persons" พวกเราไม่จำเป็นต้องกำหนดค่าสำหรับคอลัมน์ "P_Id" (ค่าจะถูกเพิ่มเองโดยอัตโนมัติ):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

คำสั่ง SQL ด้านบนจะใส่บันทึกใหม่ลงในตาราง "Persons" ค่า "P_Id" จะได้รับค่าเด็ดขาด ค่า "FirstName" จะมีค่าเป็น "Bill" และค่าของคอลัมน์ "LastName" จะมีค่าเป็น "Gates"

สyntax สำหรับ Access

SQL ประมาณการดังต่อไปนี้จะกำหนดคอลัมน์ "P_Id" ในตาราง "Persons" ให้เป็น auto-increment หลัก:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access ใช้คำสั่ง AUTOINCREMENT สำหรับงาน auto-increment

โดยปกติ AUTOINCREMENT จะเริ่มต้นที่ 1 และเพิ่มขึ้น 1 ต่อบันทึกใหม่

เพื่อกำหนดให้คอลัมน์ "P_Id" เริ่มต้นที่ 20 และเพิ่มขึ้น 10 โปรดเปลี่ยน autoincrement ให้เป็น AUTOINCREMENT(20,10)

เพื่อที่จะเพิ่มบันทึกใหม่ในตาราง "Persons" พวกเราไม่จำเป็นต้องกำหนดค่าสำหรับคอลัมน์ "P_Id" (ค่าจะถูกเพิ่มเองโดยอัตโนมัติ):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

คำสั่ง SQL ด้านบนจะใส่บันทึกใหม่ลงในตาราง "Persons" ค่า "P_Id" จะได้รับค่าเด็ดขาด ค่า "FirstName" จะมีค่าเป็น "Bill" และค่าของคอลัมน์ "LastName" จะมีค่าเป็น "Gates"

รหัสบทสั่งสำหรับ Oracle

ใน Oracle รหัสบทสั่งจะละเอียดยิ่งขึ้น

คุณจะต้องผ่าน sequence ตัวที่สร้างฟิลด์ auto-increment (ตัวที่สร้างตัวเลขตัวอย่าง)

ใช้บทสั่ง 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 (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

คำสั่ง SQL ด้านบนจะใส่บันทึกใหม่ลงในตาราง "Persons" ค่า "P_Id" จะมีค่าเป็นตัวเลขต่อไปของตัวเลขที่มีในตัวเลขของ seq_person ค่า "FirstName" จะมีค่าเป็น "Bill" และค่าของคอลัมน์ "LastName" จะมีค่าเป็น "Gates"

  • หน้าก่อนหน้า SQL Alter
  • หน้าต่อไป SQL View