Đôi khi bạn có thể cần tạo cột duy nhất trong MySQL. Bạn có thể làm điều này bằng cách thêm ràng buộc cột DUY NHẤT trong MySQL. Có một số cách để thêm ràng buộc duy nhất - sử dụng câu lệnh CREATE TABLE hoặc ALTER TABLE. Dưới đây là cách thêm ràng buộc duy nhất trong MySQL.
MySQL Thêm Ràng buộc Duy nhất
Dưới đây là cách thêm ràng buộc duy nhất trong MySQL. Bạn có thể thêm ràng buộc Duy nhất khi tạo bảng hoặc sau khi tạo bảng. Chúng ta sẽ xem xét cả hai cách tiếp cận này.
MySQL Thêm Ràng buộc Duy nhất khi Tạo Bảng
Đây là câu lệnh SQL để tạo ràng buộc DUY NHẤT khi bạn tạo bảng
CREATE TABLE table_name( ..., column_name data_type UNIQUE, ... )
Trong truy vấn trên, bạn cần chỉ định từ khóa DUY NHẤT cho định nghĩa cột mà bạn muốn là duy nhất.
Dưới đây là một ví dụ để tạo ràng buộc duy nhất. Trong ví dụ sau, chúng tôi đã thêm ràng buộc DUY NHẤT cho order_id cột
mysql> create table recent_orders ( order_id int UNIQUE, amount int ); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+
Bây giờ nếu bạn cố gắng chèn các giá trị trùng lặp cho order_id bạn sẽ gặp lỗi.
mysql> insert into recent_orders(order_id, amount) values(1, 100),(1,250); ERROR 1062 (23000): Duplicate entry '1' for key 'order_id' mysql> insert into recent_orders(order_id, amount) values(1, 100),(2,250); mysql> select * from recent_orders; +----------+--------+ | order_id | amount | +----------+--------+ | 1 | 100 | | 2 | 250 | +----------+--------+
Phần thưởng Đọc:Cột Đổi tên MySQL
MySQL Thêm Ràng buộc Duy nhất vào Cột Hiện tại
Đây là câu lệnh SQL để tạo ràng buộc DUY NHẤT cho một cột hiện có, sử dụng câu lệnh ALTER TABLE.
ALTER TABLE table_name ADD CONSTRAINT constraint_name UNIQUE (column1, column2, ... );
Trong truy vấn SQL ở trên, bạn cần phải chỉ định một tên_khoản_có_tên cho ràng buộc DUY NHẤT sau khi THÊM CONSTRAINT và liệt kê các cột bạn muốn là duy nhất trong ()
Dưới đây là một ví dụ để thêm ràng buộc Duy nhất vào cột hiện có
mysql> alter table recent_orders add constraint unique_amount UNIQUE (amount); mysql> describe recent_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | UNI | NULL | | | amount | int(11) | YES | UNI | NULL | | +----------+---------+------+-----+---------+-------+
Trong truy vấn trên, chúng tôi đã thêm ràng buộc duy nhất vào cột số tiền.
Phần thưởng đọc:Cách sao chép bảng trong MySQL
MySQL Thêm Nhiều Cột Ràng buộc Duy nhất
Đây là câu lệnh SQL để tạo ràng buộc DUY NHẤT cho nhiều cột.
mysql> create table old_orders ( order_id int, amount int, CONSTRAINT u_orders UNIQUE (order_id,amount) ); mysql> describe old_orders; +----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+---------+------+-----+---------+-------+ | order_id | int(11) | YES | MUL | NULL | | | amount | int(11) | YES | | NULL | | +----------+---------+------+-----+---------+-------+ mysql> insert into old_orders(order_id, amount) values(1, 100),(1,100); ERROR 1062 (23000): Duplicate entry '1-100' for key 'u_orders'
Phần thưởng đã đọc:Quy trình được lưu trữ trong MySQL với các tham số
Bạn cũng có thể thêm UNIQUE CONSTRAINT vào nhiều cột bằng cách sử dụng câu lệnh ALTER TABLE.
alter table old_orders add constraint unique_orders UNIQUE (order_id,amount);
Ubiq giúp dễ dàng trực quan hóa dữ liệu trong vài phút và theo dõi trong trang tổng quan thời gian thực. Thử nó ngay hôm nay!