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

Sử dụng khóa chính tổng hợp làm khóa ngoại

Dòng:

FOREIGN KEY (pk_studentID ) REFERENCES student(pk_studentID ),

là sai. Bạn không thể sử dụng pk_studentID như vậy, đây chỉ là tên của ràng buộc PK trong bảng cha. Để sử dụng Khóa chính kết hợp làm Khóa ngoại, bạn sẽ phải thêm cùng một số cột (tạo PK) với cùng kiểu dữ liệu vào bảng con và sau đó sử dụng kết hợp các cột này trong FOREIGN KEY định nghĩa:

CREATE TABLE files
(
  files_name varchar(50) NOT NULL, 

  batch_id varchar(4) NOT NULL,         --- added, these 3 should not
  dept_id varchar(6) NOT NULL,          --- necessarily be NOT NULL
  student_id varchar (25) NOT NULL,     --- 

  files_path varchar(50),
  files_data varchar(max),              --- varchar(max) ??   
  files_bookmarks xml,                  --- xml ??
                                        --- your question is tagged MySQL, 
                                        --- and not SQL-Server

  CONSTRAINT pk_filesName 
    PRIMARY KEY (files_name),

  CONSTRAINT fk_student_files                     --- constraint name (optional)
    FOREIGN KEY (batch_id, dept_id, student_id)  
      REFERENCES student (batch_id, dept_id, student_id)
) ENGINE = InnoDB ;



  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 nhập tệp CSV vào bảng MySQL

  2. Khắc phục “ERROR 3942 (HY000):Mỗi hàng của mệnh đề VALUES phải có ít nhất một cột” khi sử dụng Câu lệnh VALUES trong MySQL

  3. Neo4j - Thả chỉ mục bằng Cypher

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

  5. MySQL tham gia truy vấn bằng cách sử dụng như thế nào?