Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để chỉ chèn những bản ghi không tồn tại trong bảng MySQL?

Để chèn khi bản ghi không tồn tại, hãy đặt cột là CHỈ SỐ DUY NHẤT. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   FirstName varchar(20)
   );
Query OK, 0 rows affected (0.30 sec)

Sau đây là truy vấn để tạo chỉ mục duy nhất để chèn bản ghi không tồn tại trong cột 'FirstName' -

mysql> CREATE UNIQUE INDEX index_on_FirstName ON DemoTable(FirstName);
Query OK, 0 rows affected (0.56 sec)
Records: 0 Duplicates: 0 Warnings: 0

Chèn một số bản ghi trong bảng bằng lệnh chèn. Bây giờ ở đây bạn có thể kiểm tra lệnh insert chỉ chèn những bản ghi không tồn tại -

mysql> insert into DemoTable(FirstName) values('Chris');
Query OK, 1 row affected (0.07 sec)

mysql> insert into DemoTable(FirstName) values('Chris');
ERROR 1062 (23000): Duplicate entry 'Chris' for key 'index_on_FirstName'
mysql>
mysql> insert into DemoTable(FirstName) values('Robert');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(FirstName) values('Mike');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(FirstName) values('Robert');
ERROR 1062 (23000): Duplicate entry 'Robert' for key 'index_on_FirstName'
mysql>

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+----+-----------+
| Id | FirstName |
+----+-----------+
|  1 | Chris     |
|  2 | Robert    |
|  3 | Mike      |
+----+-----------+
3 rows in set (0.00 sec)