Редът:
FOREIGN KEY (pk_studentID ) REFERENCES student(pk_studentID ),
не е наред. Не можете да използвате pk_studentID
така, това е само името на PK ограничението в родителската таблица. За да използвате съставен първичен ключ като външен ключ, ще трябва да добавите същия брой колони (които съставляват PK) със същите типове данни към дъщерната таблица и след това да използвате комбинацията от тези колони в FOREIGN KEYкод> определение:
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 ;