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

เทียบเท่ากับคอลัมน์ IDENTITY ของเซิร์ฟเวอร์ SQL ใน MySQL หรือไม่


เทียบเท่ากับคอลัมน์ Microsoft SQL Server IDENTITY ใน MySQL คือ AUTO_INCREMENT IDENTITY ใน SQL Server ทำหน้าที่เหมือน AUTO_INCREMENT ใน MySQL

ไวยากรณ์มีดังนี้ −

สร้างตาราง yourTableName( yourColumnName1 dataType NOT NULL AUTO_INCREMENT, yourColumnName2 dataType, . . . N, PRIMARY KEY(yourColumnName1));

ใน MySQL คุณต้องใช้คีย์หลักหากคอลัมน์ของคุณเป็น auto_increment มิฉะนั้น MySQL จะแจ้งข้อผิดพลาด ดูข้อผิดพลาด -

mysql> สร้างตาราง EquivalentOfIdentityInMySQL -> ( -> ProductId int NOT NULL AUTO_INCREMENT, -> ProductName varchar(30) -> );ERROR 1075 (42000) - นิยามตารางไม่ถูกต้อง สามารถมีคอลัมน์อัตโนมัติได้เพียงคอลัมน์เดียวและต้องกำหนดเป็นคีย์

หากต้องการลบข้อผิดพลาดข้างต้น คุณต้องสร้าง ProductId เป็นคีย์หลัก การประกาศของ MySQL AUTO_INCREMENT มีดังต่อไปนี้โดยตั้งค่า ProductId เป็นคีย์หลัก -

mysql> สร้างตาราง EquivalentOfIdentityInMySQL -> ( -> ProductId int ไม่ใช่ NULL AUTO_INCREMENT, -> ProductName varchar(30) -> , -> PRIMARY KEY(ProductId) -> );Query OK, 0 แถวได้รับผลกระทบ (0.59 วินาที) 

ถ้าคุณไม่ส่งค่าใดๆ สำหรับคอลัมน์ ProductId MySQL จะเริ่ม auto_increment จาก 1 และตัวเลขถัดไปจะเพิ่มขึ้นทีละ 1 ตามค่าเริ่มต้น

ในการตรวจสอบคอลัมน์ ProductId ให้เราแทรกบางระเบียนในตารางโดยใช้คำสั่ง insert แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า EquivalentOfIdentityInMySQL(ProductName) ('Product-1'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า EquivalentOfIdentityInMySQL (ProductName) ('Product-2'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า EquivalentOfIdentityInMySQL (ProductName) ('Product-34'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.10 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-----------+-------------+| ProductId | ProductName |+-----------+-------------+| 1 | สินค้า-1 || 2 | สินค้า-2 || 3 | Product-34 |+-----------+-----------+3 แถวในชุด (0.00 วินาที)

ดูคอลัมน์ ProductId เราไม่ได้ส่งค่าใด ๆ สำหรับคอลัมน์นี้ แต่เราได้รับตัวเลขที่เริ่มต้นจาก 1 และตัวเลขถัดไปเพิ่มขึ้นทีละ 1