Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Użyj złożonego klucza podstawowego jako klucza obcego

Linia:

FOREIGN KEY (pk_studentID ) REFERENCES student(pk_studentID ),

jest źle. Nie możesz użyć pk_studentID w ten sposób jest to tylko nazwa ograniczenia PK w tabeli nadrzędnej. Aby użyć złożonego klucza podstawowego jako klucza obcego, musisz dodać taką samą liczbę kolumn (które składają się na PK) z tymi samymi typami danych do tabeli podrzędnej, a następnie użyć kombinacji tych kolumn w FOREIGN KEY definicja:

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. Klasy zagnieżdżone — CustomRowMapper !! To już nie problem!! - Część 2

  2. Czy MySQL może podzielić kolumnę?

  3. Wzory do obliczania odległości geograficznej

  4. Zwróć wiersz tylko wtedy, gdy wartość nie istnieje

  5. Jak uzyskać listę dat między dwiema datami w zapytaniu wybierającym mysql