Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL Thêm Ràng buộc Duy nhất

Đô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!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn thiết kế cơ sở dữ liệu cho trình quản lý tác vụ trong MySQL

  2. Sử dụng JDeveloper với Cơ sở dữ liệu MySQL và Cơ sở dữ liệu Oracle trên AWS RDS, Phần 3

  3. Lỗi câu lệnh chuẩn bị sẵn mysql:MySQLSyntaxErrorException

  4. một bảng cố định có nhiều cột so với bảng trừu tượng linh hoạt

  5. MySQL và NoSQL:Giúp tôi chọn đúng