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

แสดงข้อผิดพลาดเมื่อแทรกข้อมูลซ้ำในตาราง MySQL ด้วย UNIQUE KEY

ใช้ UNIQUE KEY หรือ UNIQUE INDEX เพื่อป้องกันค่าซ้ำและแสดง Error อัตโนมัติ

mysql> CREATE TABLE DemoTable1553 (
    -> EmployeeId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(20),
    -> EmployeeSalary INT
    -> );
Query OK, 0 rows affected (0.47 sec)
mysql> ALTER TABLE DemoTable1553 ADD UNIQUE(EmployeeSalary);
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Chris', 45000);
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('David', 35000);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Sam', 25000);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable1553(EmployeeName, EmployeeSalary) VALUES('Carol', 45000);
ERROR 1062 (23000): Duplicate entry '45000' for key 'EmployeeSalary'
mysql> SELECT * FROM DemoTable1553;
+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
|          1 | Chris        |          45000 |
|          2 | David        |          35000 |
|          3 | Sam          |          25000 |
+------------+--------------+----------------+
3 rows in set (0.00 sec)

ประโยชน์: รับประกันความสมบูรณ์ข้อมูล (Data Integrity) ที่ระดับฐานข้อมูล ไม่ต้องตรวจสอบในโปรแกรม