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

เราสามารถบังคับใช้เอกลักษณ์เฉพาะใน MySQL ได้หรือไม่?


ใช่ เราสามารถทำได้ เพื่อให้เข้าใจ ให้เราสร้างตารางก่อน -

mysql> สร้างตารางที่บังคับใช้CompoundUniqueness -> ( -> StudentId int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> StudentName varchar(40) NOT NULL, -> StudentMobileNumber varchar(12) NOT NULL, -> UNIQUE StudentName_StudentMobileNumber(StudentName,StudentMobileNumber) -> );แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.60 วินาที)

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

mysql> แทรกลงในforceCompoundUniqueness(StudentName,StudentMobileNumber)values('Larry','2322245676');Query OK, 1 แถวที่ได้รับผลกระทบ (0.18 วินาที)mysql> แทรกลงในforceCompoundUniqueness(StudentName,StudentMobileNumber)values('Larry', '2322245676');ข้อผิดพลาด 1062 (23000):รายการที่ซ้ำกัน 'Larry-2322245676' สำหรับคีย์'StudentName_StudentMobileNumber'mysql> แทรกลงในforceCompoundUniqueness(StudentName,StudentMobileNumber)values('Sam','6475746455'); Query OK, 1 แถวได้รับผลกระทบ (0.13 วินาที)

ในการสืบค้นข้อมูลข้างต้น หากคุณพยายามแทรกบันทึกที่ซ้ำกัน อาจเห็นข้อผิดพลาดเนื่องจากเราได้บังคับใช้การไม่ซ้ำกัน

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

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

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

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