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

จะป้องกันแถวที่ซ้ำกันใน MySQL INSERT ได้อย่างไร


สำหรับสิ่งนี้ คุณต้องใช้ UNIQUE KEY สำหรับคอลัมน์ ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable ( Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, FirstName varchar(30), UNIQUE KEY(FirstName)); ตกลง, 0 แถวได้รับผลกระทบ (1.76 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก ตอนนี้ เรากำลังแทรกระเบียนที่ซ้ำกัน เช่น “David” แต่จะไม่มีการแทรกสองครั้ง เนื่องจากเราได้ตั้งค่าคอลัมน์เป็น UNIQUE KEY -

mysql> แทรกการละเว้นลงในค่า DemoTable(FirstName) ('Chris'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.42 วินาที)mysql> แทรกค่าละเว้นลงในค่า DemoTable (FirstName) ('David'); แบบสอบถามตกลง 1 แถว ได้รับผลกระทบ (0.12 วินาที) mysql> แทรกค่าละเว้นลงในค่า DemoTable (FirstName) ('Chris'); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ 1 คำเตือน (0.17 วินาที) mysql> แทรกละเว้นลงในค่า DemoTable (ชื่อ) ('Sam'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกละเว้นลงในค่า DemoTable (ชื่อแรก) ('David'); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ 1 คำเตือน (0.07 วินาที)

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

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

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

<ก่อนหน้า>+----+-----------+| รหัส | ชื่อจริง |+----+-----------+| 1 | คริส || 2 | เดวิด || 4 | แซม |+----+-----------+3 แถวในชุด (0.00 วินาที)