Sự khác biệt giữa khóa duy nhất của người Hồi giáo


Câu trả lời:


20

Một bảng có thể có nhiều nhất một PRIMARY KEYràng buộc nhưng nó có thể có nhiều UNIQUE KEYràng buộc như bạn muốn .

Các cột là một phần của PRIMARY KEYphải được xác định là NOT NULL. Điều đó là không cần thiết cho các cột là một phần của các UNIQUE KEYràng buộc. Nếu các cột không Nullable, thì không có sự khác biệt giữa Khóa duy nhất và Khóa chính.

Một điểm khác biệt nhỏ là bạn có thể chọn tên bạn muốn cho một UNIQUE KEYràng buộc (và chỉ mục). Mặt khác, PRIMARY KEYcó tên mặc định : PRIMARY.


5

Một sự khác biệt lớn

  • Khóa chính không cho phép các cột rỗng
  • Khóa duy nhất cho phép các cột không thể

Mặt khác, không có nhiều khác biệt ...


4

Một cái gì đó mà người khác không chỉ ra:

  • Nếu bạn không khai báo rõ ràng PK trong các bảng InnoDB, nó sẽ tạo một PK dưới vỏ cho bạn. Bạn không thể truy cập, đặt hàng hoặc lọc bằng khóa ẩn này. Điều này có sự phân nhánh về mặt tài nguyên vì mỗi chỉ mục phụ chứa một con trỏ sao chép vào PK của hàng.

3

Sự khác biệt quan trọng nhất là trong mục đích của họ .

  • Khóa chính : Mục đích của Khóa chính là hoạt động như một KEY KEY. Khóa chính là khóa trong cơ sở dữ liệu quan hệ được sử dụng để xác định các bản ghi.
  • Chỉ mục duy nhất : Chỉ mục duy nhất là một INDEX Nhật Bản dành cho hiệu suất. Trình tối ưu hóa biết rằng với điều kiện "trong đó x =: x, sẽ chỉ có một bản ghi - do đó, nó có thể chuẩn bị một kế hoạch phù hợp cho điều đó.
  • Ràng buộc duy nhất : Đó là một CONSTRAINT BẠCH mà đảm bảo rằng không có giá trị trùng lặp trong cột đó. Đó là một hạn chế cho tính toàn vẹn dữ liệu.

Ngoài mục đích của họ, những điểm sau là đáng chú ý.

  • Trừ khi có quy định khác, PRIMARY KEY sẽ cố gắng tạo INDEX CLUSTERED (Điểm này là về SQL Server, như đã đề cập trong bình luận)
  • Chỉ có thể có một KHÓA CHÍNH trên mỗi bảng; nhưng có thể có nhiều ràng buộc và chỉ mục duy nhất
  • KEY PRIMARY luôn không rỗng nhưng các cột có ràng buộc duy nhất có thể chứa các giá trị NULL

1
Câu hỏi được gắn thẻ MySQL. Bạn không thể chỉ định khác, nếu bảng sử dụng công cụ InnoDB và có khóa chính, thì đây là chỉ mục được nhóm. Không có lựa chọn. Có lẽ bạn đã nghĩ về SQL Server.
ypercubeᵀᴹ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.