Mysql
 sql >> база данни >  >> RDS >> Mysql

Използвайте композитен първичен ключ като външен ключ

Редът:

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 ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL функция за намиране на броя на работните дни между две дати

  2. PHP PDO и MySQLi

  3. Замяна в синтаксис на заявка

  4. FIND_IN_SET() срещу IN()

  5. Не може да издаде изрази за манипулиране на данни с executeQuery()