Unique trong MySQL
UNIQUE
thực chất là một index KEY
nên khi bạn thiết lập một field nào đó là UNIQUE
thì việc truy vấn dữ liệu trên field đó sẽ nhanh hơn. Nó được dùng trong trường hợp bạn muốn tạo thêm một field có giá trị là duy nhất.
Ví dụ trong bảng Users gồm các fields như sau: Users(id, username, email) thì với id
ta sẽ chọn làm khóa chính. Nhưng mà tôi muốn email và username của người dùng phải là duy nhất, nghĩa là người dùng không được sử dụng một email
hoặc username
để đăng ký nhiều tài khoản. Để giải quyết thì ta sẽ thiết lập cho hai fields này là UNIQUE
.
Như vậy sự khác biệt giữa UNIQUE
và Primary Key
là:
Primary Key
có cấp cao hơnUNIQUE
, nó thường dùng để phân biệt giữa các record.Trong mỗi bảng chỉ có có một
Primary Key
, cònUNIQUE
thì có thể có nhiều
Tạo UNIQUE trong MySQL
Để tạo UNIQUE ta có hai cách, cách thứ nhất là tạo trực tiếp trong lệnh CREATE TABLE và cách thứ hai là sử dụng lệnh ALTER TABLE
.
Tạo trong lệnh tạo bảng
Chúng ta sẽ thêm từ khóa UNIQUE
vào field mà ban muốn thiết lập nó là UNIQUE
.
Hoặc ta có thể thêm nó ở dưới danh sách các fields (giống Primary Key).
Sử dụng Alter Table để tạo
Trong trường hợp này chúng ta sẽ tạo bảng trước, sau đó sử dụng lệnh Alter Table
để thêm UNIQUE
.
Sử dụng CONSTRAINT để tạo tên cho UNIQUE
Cách này khuyến khích sử dụng vì mỗi index chúng ta nên đặt cho nó một cái tên để sau này muốn thực hiện thao tác delete unique thì sẽ dựa vào tên constraint đó. Ví dụ:
Hoặc:
Xóa (Drop) Unique trong MySQL
Sau khi tạo UNIQUE
xong nếu bạn muốn bỏ nó đi thì sẽ sử dụng lệnh ALTER TABLE
kết hợp với DROP
. Tuy nhiên để xóa UNIQE
nào thì chúng ta phải biết được tên của nó, vì vậy ta nên dùng CONSTRAINT
để tạo unique nhé. Sau đây là ví dụ xóa UNIQUE
.
Last updated