สร้าง 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 แต่อัปเดตแทน