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

Làm thế nào để biến một trường hiện có trở thành Duy nhất trong MySQL?

Để biến một trường hiện có trở thành duy nhất trong MySQL, chúng ta có thể sử dụng lệnh ALTER và đặt ràng buộc UNIQUE cho trường. Hãy để chúng tôi xem một ví dụ. Đầu tiên, chúng ta sẽ tạo một bảng.

mysql> create table AddingUnique
   -> (
   -> Id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.44 sec)

Cú pháp để thêm UNIQUE vào trường hiện có.

alter table yourTableName add UNIQUE(yourColumnName);

Áp dụng cú pháp trên để thêm DUY NHẤT vào cột "tên".

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

Bây giờ chúng ta không thể chèn các bản ghi trùng lặp vào bảng, vì chúng ta đã đặt trường là duy nhất. Nếu chúng tôi cố gắng thêm các bản ghi trùng lặp thì nó sẽ gây ra lỗi.

mysql> alter table AddingUnique add UNIQUE(name);
Query OK, 0 rows affected (0.60 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> insert into AddingUnique values(1,'John');
Query OK, 1 row affected (0.15 sec)

mysql> insert into AddingUnique values(1,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(2,'Carol');
Query OK, 1 row affected (0.18 sec)

mysql> insert into AddingUnique values(3,'John');
ERROR 1062 (23000): Duplicate entry 'John' for key 'name'

mysql> insert into AddingUnique values(4,'Smith');
Query OK, 1 row affected (0.18 sec)

Để hiển thị tất cả các bản ghi.

mysql> select *from AddingUnique;

Sau đây là kết quả.

+------+-------+
| Id   | name  |
+------+-------+
|    1 | John  |
|    2 | Carol |
|    4 | Smith |
+------+-------+
3 rows in set (0.00 sec)