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

tạo khóa ngoại mà không có khóa chính

Câu hỏi rất hay. Không có lý do cơ bản nào tại sao một ràng buộc tham chiếu không nên tham chiếu thứ gì đó ngoài khóa ứng viên. Thậm chí còn có một cái tên cho những ràng buộc như vậy:Sự phụ thuộc bao gồm. Khóa ngoại chỉ là một loại phụ thuộc bao gồm trong đó mục tiêu của ràng buộc là một khóa ứng viên.

Thật không may, SQL không cung cấp hỗ trợ tốt cho các phụ thuộc bao gồm hoặc thậm chí cho các ràng buộc tham chiếu nói chung. SQL giới hạn cái gọi là ràng buộc FOREIGN KEY để tham chiếu đến các cột của ràng buộc UNIQUE hoặc PRIMARY KEY (mặc dù không nhất thiết phải là khóa ứng viên).

Vì vậy, những gì bạn đưa ra thực sự là một hạn chế đáng ngờ của SQL. Nó không có nghĩa là bạn đang làm bất cứ điều gì quá sai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.sql.SQLException:Không tìm thấy trình điều khiển phù hợp cho jdbc:microsoft:sqlserver

  2. Sự cố chuỗi kết nối - SQL Server 2008 trên Windows 2008

  3. Cú pháp GRANT cho miền \ người dùng

  4. Nhận danh sách tất cả các cột rỗng và không rỗng trong cơ sở dữ liệu SQL Server - Hướng dẫn SQL Server / T-SQL Phần 53

  5. Bật Thư cơ sở dữ liệu trong SQL Server (T-SQL)