您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用复合主键作为外键

使用复合主键作为外键

该行:

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 ;
其他 2022/1/1 18:23:44 有465人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶