ล่าสุดการพัฒนาเว็บบทเรียน
 

SQL AUTO INCREMENT สนาม


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


AUTO INCREMENT สนาม

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

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


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

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

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

เพื่อแทรกระเบียนใหม่เข้าสู่ "Persons" ตารางเราจะไม่ได้มีการระบุค่าสำหรับ "ID" คอลัมน์ (ค่าที่ไม่ซ้ำกันจะถูกเพิ่มโดยอัตโนมัติ):

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

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


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

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

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 ใช้คำหลักอัตลักษณ์ในการดำเนินการเป็นคุณลักษณะที่เพิ่มโดยอัตโนมัติ

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

เคล็ดลับ: เมื่อต้องการระบุว่า "ID" คอลัมน์ควรเริ่มต้นที่คุ้มค่า 10 และเพิ่มขึ้น 5 เปลี่ยนไป IDENTITY (10,5)

เพื่อแทรกระเบียนใหม่เข้าสู่ "Persons" ตารางเราจะไม่ได้มีการระบุค่าสำหรับ "ID" คอลัมน์ (ค่าที่ไม่ซ้ำกันจะถูกเพิ่มโดยอัตโนมัติ):

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

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


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

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

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

นางสาว Access ใช้คำหลัก AUTOINCREMENT ในการดำเนินการเป็นคุณลักษณะที่เพิ่มโดยอัตโนมัติ

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

เคล็ดลับ: เมื่อต้องการระบุว่า "ID" คอลัมน์ควรเริ่มต้นที่คุ้มค่า 10 และเพิ่มขึ้น 5 เปลี่ยน AutoIncrement เพื่อ AUTOINCREMENT (10,5)

เพื่อแทรกระเบียนใหม่เข้าสู่ "Persons" ตารางเราจะไม่ได้มีการระบุค่าสำหรับ "ID" คอลัมน์ (ค่าที่ไม่ซ้ำกันจะถูกเพิ่มโดยอัตโนมัติ):

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

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


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

ใน Oracle รหัสเป็นเรื่องยุ่งยากนิด ๆ หน่อย ๆ

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

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

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

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

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

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

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