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

Khóa ngoài cho khóa không phải khóa chính

Nếu bạn thực sự muốn tạo một khóa ngoại cho một khóa không phải là khóa chính, thì nó PHẢI là một cột có ràng buộc duy nhất đối với nó.

Từ Sách Trực tuyến:

Ràng buộc FOREIGN KEY không phải chỉ được liên kết với một ràng buộc PRIMARYKEY trong một bảng khác; nó cũng có thể được định nghĩa để tham chiếu đến các cột của ràng buộc DUY NHẤT trong một bảng khác.

Vì vậy, trong trường hợp của bạn nếu bạn tạo AnotherID duy nhất, nó sẽ được cho phép. Nếu bạn không thể áp dụng một ràng buộc duy nhất thì bạn không gặp may, nhưng điều này thực sự có ý nghĩa nếu bạn nghĩ về nó.

Mặc dù, như đã được đề cập, nếu bạn có một khóa chính hoàn toàn tốt làm khóa ứng viên, tại sao không sử dụng nó?



  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 tạo công việc trong phiên bản SQL Server Express

  2. SQL Server:Tìm ra giá trị mặc định của một cột bằng một truy vấn

  3. Hệ thống phân cấp công nghệ bộ nhớ / lưu trữ và SQL Server

  4. 3 cách để tìm hiểu xem một cột có phải là một cột được tính toán trong SQL Server hay không

  5. Nhận các bản ghi của tháng trước trong máy chủ SQL