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

MySQL - Tạo một cặp giá trị duy nhất

Nó được gọi là khóa tổng hợp.

Nếu bạn muốn thay đổi PK thực tế của mình thành PK tổng hợp, hãy sử dụng

Alter table <your table> drop PRIMARY KEY;
Alter table <your table> drop COLUMN <your autoincremented column>;

Alter table <your table> add [constraint <constraint name>] PRIMARY KEY (<col1>, <col2>);

Bạn cũng có thể chỉ cần thêm một ràng buộc duy nhất (PK của bạn sẽ giống nhau và các cặp duy nhất ... sẽ phải là duy nhất).

alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);

Về mặt cá nhân, tôi muốn giới thiệu giải pháp thứ hai (PK đơn giản + ràng buộc duy nhất), nhưng đó chỉ là quan điểm cá nhân. Bạn có thể google để biết các đối số ưu và nhược điểm về khóa tổng hợp.

Phần giữa [] là tùy chọn.

CHỈNH SỬA

Nếu bạn muốn làm điều này trong câu lệnh tạo bảng

Đối với pk tổng hợp

CREATE TABLE Test(
    id1 int NOT NULL, 
    id2 int NOT NULL,
    id3 int NOT NULL,
    PRIMARY KEY (id1, id2)
);

Đối với một chỉ mục duy nhất

CREATE TABLE Test1(
    id1 int NOT NULL AUTO_INCREMENT, 
    id2 int NOT NULL,
    id3 int NOT NULL,
    PRIMARY KEY (id1),
    UNIQUE KEY (id2, id3)
);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ tệp trong cơ sở dữ liệu mysql bằng blob

  2. Kiểm tra thời gian thực thi truy vấn trong laravel

  3. CHỌN của chế độ xem chứa một truy vấn con trong mệnh đề FROM

  4. Laravel $ q-> where () giữa các ngày

  5. 2 cách liệt kê tất cả các hàm trong MySQL