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

เพิ่มเฉพาะข้อมูลที่ไม่ซ้ำด้วย UNIQUE INDEX ใน MySQL

สร้าง UNIQUE INDEX บนคอลัมน์ที่ต้องการให้ไม่ซ้ำ แล้วใช้ INSERT ปกติ — ข้อมูลซ้ำจะถูกปฏิเสธโดยอัตโนมัติ

สร้างตารางและ UNIQUE INDEX

mysql> CREATE TABLE DemoTable (
    Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    FirstName VARCHAR(20)
);
mysql> CREATE UNIQUE INDEX index_on_FirstName ON DemoTable(FirstName);

ทดสอบเพิ่มข้อมูล (ซ้ำจะ error)

mysql> INSERT INTO DemoTable(FirstName) VALUES ('Chris');  -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Chris');  -- ERROR 1062
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Robert'); -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Mike');   -- OK
mysql> INSERT INTO DemoTable(FirstName) VALUES ('Robert'); -- ERROR 1062

ดูข้อมูลที่เพิ่มสำเร็จ

mysql> SELECT * FROM DemoTable;
+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | Chris     |
|  2 | Robert    |
|  3 | Mike      |
+----+-----------+

ทางเลือกอื่น: ใช้ INSERT IGNORE หรือ INSERT ... ON DUPLICATE KEY UPDATE หากต้องการไม่ให้ error แต่อัปเดตแทน