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

จะเกิดอะไรขึ้นหากฉันลืมตั้งค่าการเพิ่มอัตโนมัติ ฉันสามารถตั้งค่าในภายหลังใน MySQL ได้หรือไม่


ได้ คุณสามารถตั้งค่า Auto Increment ในภายหลังด้วย ALTER table ให้เราสร้างตารางก่อน อย่างที่คุณเห็น เรายังไม่ได้ตั้งค่าการเพิ่มอัตโนมัติ -

mysql> สร้างตาราง forgetToSetAutoIncrementDemo -> ( -> StudentId int, -> StudentName varchar(30) -> );Query OK, 0 แถวได้รับผลกระทบ (1.17 วินาที)

ตอนนี้ตรวจสอบคำอธิบายตาราง ไม่มีคอลัมน์ auto_increment -

mysql> อธิบาย forgetToSetAutoIncrementDemo;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+-------------+------+----+----- ----+-------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+-------------+------+ -----+------ -----------+| รหัสนักศึกษา | int(11) | ใช่ | | NULL | || ชื่อนักเรียน | varchar(30) | ใช่ | | NULL | |+-------------+-------------+------+----+------- ---+-------+2 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อตั้งค่าการเพิ่มอัตโนมัติในคอลัมน์ StudentId -

mysql> แก้ไขตาราง forgetToSetAutoIncrementDemo แก้ไขคอลัมน์ StudentId int ไม่ใช่ NULLAUTO_INCREMENT PRIMARY KEY แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (2.12 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0

ตรวจสอบคำอธิบายตารางอีกครั้ง เพิ่มคอลัมน์ auto_increment สำเร็จแล้ว -

mysql> อธิบาย forgetToSetAutoIncrementDemo;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+-------------+------+----+----- ----+----------------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+-------------+-------------+------+ -----+------ ---------------------+| รหัสนักศึกษา | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อนักเรียน | varchar(30) | ใช่ | | NULL | |+-------------+-------------+------+----+------- --+----------------+2 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก -

mysql> แทรกลงใน forgetToSetAutoIncrementDemo(StudentName) values('Larry');Query OK, 1 แถวได้รับผลกระทบ (0.16 sec)mysql> แทรกลงใน forgetToSetAutoIncrementDemo(StudentName) values('Chris'); Query OK, 1 แถวได้รับผลกระทบ ( 0.13 วินาที) mysql> แทรกลงใน forgetToSetAutoIncrementDemo (StudentName) ค่า ('Robert'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่งเลือก -

mysql> เลือก * จาก forgetToSetAutoIncrementDemo;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้โดยแสดง StudentID เป็น auto_increment -

<ก่อนหน้า>+-----------+-------------+| รหัสนักศึกษา | ชื่อนักเรียน |+-----------+-------------+| 1 | แลร์รี่ || 2 | คริส || 3 | Robert |+-----------+-------------+3 แถวในชุด (0.00 วินาที)