sql >> Databáze >  >> RDS >> Mysql

Jako cizí klíč použijte složený primární klíč

Řádek:

FOREIGN KEY (pk_studentID ) REFERENCES student(pk_studentID ),

je špatně. Nemůžete použít pk_studentID takhle je to jen název omezení PK v nadřazené tabulce. Chcete-li použít složený primární klíč jako cizí klíč, budete muset přidat stejný počet sloupců (které tvoří PK) se stejnými datovými typy do podřízené tabulky a poté použít kombinaci těchto sloupců v FOREIGN KEY definice:

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. Použití JShell v Javě 9 v NetBeans 9.0, část 2

  2. Jak REVERSE() funguje v MariaDB

  3. Jak získat zaměstnance s jejich manažery

  4. Jak zašifrovat uloženou proceduru na serveru SQL Server