Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะตั้งค่าเริ่มต้นและเพิ่มอัตโนมัติใน MySQL ได้อย่างไร


แอตทริบิวต์ AUTO_INCREMENT ใช้เพื่อสร้างข้อมูลระบุเฉพาะสำหรับแถวใหม่ หากคอลัมน์ถูกประกาศเป็น 'NOT NULL' เป็นไปได้ที่จะกำหนด NULL ให้กับคอลัมน์นั้นเพื่อสร้างลำดับของตัวเลข

เมื่อค่าใดๆ ถูกแทรกลงในคอลัมน์ AUTO_INCREMENT คอลัมน์จะถูกตั้งค่าเป็นค่านั้น และลำดับยังได้รับการรีเซ็ตเพื่อสร้างค่าโดยอัตโนมัติในช่วงที่เรียงตามลำดับจากค่าคอลัมน์ที่ใหญ่ที่สุด

คอลัมน์ "AUTO_INCREMENT" ที่มีอยู่สามารถอัปเดตได้ ซึ่งจะรีเซ็ตลำดับ "AUTO_INCREMENT" ด้วยเช่นกัน 'AUTO_INCREMENT' ที่สร้างขึ้นโดยอัตโนมัติล่าสุด สามารถดึงค่าได้โดยใช้ฟังก์ชัน 'LAST_INSERT_ID()' ใน SQL หรือใช้ 'mysql_insert_id()' ซึ่งเป็นฟังก์ชัน C API

ฟังก์ชันเหล่านี้เป็นฟังก์ชันเฉพาะของการเชื่อมต่อ ซึ่งหมายความว่าค่าส่งคืนจะไม่ได้รับผลกระทบจากการเชื่อมต่ออื่นๆ ที่ดำเนินการแทรก สามารถใช้ชนิดข้อมูลจำนวนเต็มที่น้อยที่สุดสำหรับคอลัมน์ 'AUTO_INCREMENT' ได้ ซึ่งจะมีขนาดใหญ่พอที่จะเก็บค่าลำดับสูงสุดที่ผู้ใช้ต้องการได้

กฎสำหรับ AUTO_INCREMENT

ต้องปฏิบัติตามกฎต่อไปนี้ในขณะที่ใช้แอตทริบิวต์ AUTO_INCREMENT -

  • ทุกตารางมีคอลัมน์ AUTO_INCREMENT คอลัมน์เดียว ซึ่งโดยทั่วไปประเภทข้อมูลจะเป็นเลขจำนวนเต็ม

  • ต้องสร้างดัชนีคอลัมน์ AUTO_INCREMENT ซึ่งหมายความว่าอาจเป็นคีย์หลักหรือดัชนี UNIQUE ก็ได้

  • คอลัมน์ AUTO_INCREMENT ต้องมีข้อจำกัด NOT NULL

  • เมื่อแอตทริบิวต์ AUTO_INCREMENT ถูกตั้งค่าเป็นคอลัมน์ MySQL จะเพิ่มข้อจำกัด NOT NULL ให้กับคอลัมน์โดยอัตโนมัติด้วยตัวมันเอง

หากไม่ได้เพิ่มคอลัมน์ id ลงในตาราง สามารถใช้คำสั่งด้านล่างได้ -

ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);

หากมีคอลัมน์รหัสอยู่แล้ว สามารถใช้คำสั่งด้านล่างได้ -

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

ในที่นี้ tableName หมายถึงชื่อของตาราง fr ซึ่งจำเป็นต้องตั้งค่าคอลัมน์ 'AUTO_INCREMENT' "specificValue" หมายถึงจำนวนเต็มจากตำแหน่งที่ผู้ใช้ระบุค่า "AUTO_INCREMENT" เพื่อเริ่มต้น