Latest web development tutorials

ข้อมูล SQL AUTO INCREMENT

เพิ่มโดยอัตโนมัติในบันทึกใหม่จะสร้างจำนวนไม่ซ้ำกันในตารางเมื่อ


ฟิลด์ AUTO INCREMENT

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

เราสามารถสร้างสนามเพิ่มโดยอัตโนมัติในตาราง


ไวยากรณ์สำหรับ MySQL

ต่อไปนี้คำสั่ง SQL เพื่อตารางคน "" ใน "รหัส" คอลัมน์ถูกกำหนดให้เป็นเขตข้อมูลคีย์เพิ่มโดยอัตโนมัติหลัก:

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)
)

MySQL ใช้คำหลัก AUTO_INCREMENT ที่จะดำเนินการเพิ่มโดยอัตโนมัติ

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

ให้ลำดับ AUTO_INCREMENT เริ่มต้นด้วยค่าอื่นใช้ไวยากรณ์ SQL ต่อไปนี้:

ALTER TABLE Persons AUTO_INCREMENT=100

เพื่อแทรกบันทึกใหม่ในตารางคน "" เราไม่จำเป็นต้อง "id" คอลัมน์ค่าที่กำหนดไว้ (จะเพิ่มค่าไม่ซ้ำกัน):

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

คำสั่ง SQL ข้างต้นจะแทรกระเบียนใหม่ในตารางคน "" "id" คอลัมน์จะได้รับค่าไม่ซ้ำกัน "FirstName คอลัมน์" จะได้รับการตั้งค่าเป็น "ลาร์ส", "นามสกุล" คอลัมน์จะถูกตั้งค่าเป็น "Monsen"


ไวยากรณ์สำหรับ SQL Server

ต่อไปนี้คำสั่ง SQL เพื่อตารางคน "" ใน "รหัส" คอลัมน์ถูกกำหนดให้เป็นเขตข้อมูลคีย์เพิ่มโดยอัตโนมัติหลัก:

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

MS SQL Server โดยใช้คำหลัก IDENTITY ที่จะดำเนินการเพิ่มโดยอัตโนมัติ

ในตัวอย่างข้างต้น, ตัวตนที่คุ้มค่าเริ่มต้นคือ 1 และจะเพิ่มขึ้นโดยที่ 1 สำหรับบันทึกใหม่ในแต่ละ

เคล็ดลับ: เมื่อต้องการระบุ "รหัส" เพื่อเริ่มต้น 10 และเพิ่มทีละ 5 โปรดอัตลักษณ์ตัวตน (10,5)

เพื่อแทรกบันทึกใหม่ในตารางคน "" เราไม่จำเป็นต้อง "id" คอลัมน์ค่าที่กำหนดไว้ (จะเพิ่มค่าไม่ซ้ำกัน):

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

คำสั่ง SQL ข้างต้นจะแทรกระเบียนใหม่ในตารางคน "" "id" คอลัมน์จะได้รับค่าไม่ซ้ำกัน "FirstName คอลัมน์" จะได้รับการตั้งค่าเป็น "ลาร์ส", "นามสกุล" คอลัมน์จะถูกตั้งค่าเป็น "Monsen"


ไวยากรณ์สำหรับการเข้าถึง

ต่อไปนี้คำสั่ง SQL เพื่อตารางคน "" ใน "รหัส" คอลัมน์ถูกกำหนดให้เป็นเขตข้อมูลคีย์เพิ่มโดยอัตโนมัติหลัก:

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

MS Access โดยใช้คำหลัก AUTOINCREMENT ที่จะดำเนินการเพิ่มโดยอัตโนมัติ

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

เคล็ดลับ: เมื่อต้องการระบุ "รหัส" เพื่อเริ่มต้น 10 และเพิ่มทีละ 5 โปรด AutoIncrement เพื่อ AUTOINCREMENT (10,5)

เพื่อแทรกบันทึกใหม่ในตารางคน "" เราไม่จำเป็นต้อง "id" คอลัมน์ค่าที่กำหนดไว้ (จะเพิ่มค่าไม่ซ้ำกัน):

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

คำสั่ง SQL ข้างต้นจะแทรกระเบียนใหม่ในตารางคน "" "id" คอลัมน์จะได้รับค่าไม่ซ้ำกัน "FirstName คอลัมน์" จะได้รับการตั้งค่าเป็น "ลาร์ส", "นามสกุล" คอลัมน์จะถูกตั้งค่าเป็น "Monsen"


ไวยากรณ์สำหรับ Oracle

ใน Oracle รหัสมีความซับซ้อนมากขึ้นเพียงเล็กน้อย

คุณต้องสร้างสาขาเพิ่มโดยอัตโนมัติโดยวัตถุลำดับ (ซึ่งจะสร้างลำดับของตัวเลข)

กรุณาใช้สร้างลำดับไวยากรณ์ต่อไปนี้:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

รหัสข้างต้นสร้างวัตถุลำดับที่เรียกว่า seq_person ซึ่งเริ่มต้นด้วย 1 และเพิ่มขึ้นทีละ 1 แคชวัตถุ 10 ค่าเพื่อปรับปรุงประสิทธิภาพ ตัวเลือกแคชให้เข้าถึงได้เร็วขึ้นกับจำนวนของค่าลำดับจะถูกเก็บไว้

เพื่อแทรกบันทึกใหม่ในตารางคน "" เราจะต้องใช้ฟังก์ชั่น NEXTVAL (ฟังก์ชั่นนี้ดึงค่าต่อไปจากลำดับ seq_person):

INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

คำสั่ง SQL ข้างต้นจะแทรกระเบียนใหม่ในตารางคน "" "id" คอลัมน์ที่ได้รับมอบหมายจำนวนในลำดับถัดไปจาก seq_person "FirstName คอลัมน์" จะได้รับการตั้งค่าเป็น "ลาร์ส", "นามสกุล" คอลัมน์จะถูกตั้งค่าเป็น "Monsen"