SQL复合键

The*_*tis 2 sql compound-key

我正在尝试创建一个表,作为主键使用来自其他表的值.我的讲座说这是一个复合键(主要+外国)但我似乎无法找到如何启动一个.可以找人试着解释这个概念以及如何尝试实现它?

Him*_*shu 7

考虑由学生和课程组成的数据.当您将其存储在DBMS中时,每个学生(或课程)将具有关联的唯一ID,该ID将被称为学生(或课程)的主键

students(id, name, dob)
courses(id, name, credits)
Run Code Online (Sandbox Code Playgroud)

要将学生与他们注册的课程相关联,您将创建一个如下所示的表格.

student_course(student_id, course_id)
Run Code Online (Sandbox Code Playgroud)

要在mysql中实际创建它,你会写如下:

CREATE TABLE student_course(student_id INT NOT NULL, 
                            course_id INT NOT NULL, 
                            PRIMARY KEY (student_id, course_id),
                            FOREIGN KEY (student_id) REFERENCES student(id), 
                            FOREIGN_KEY (course_id) REFERENCES course(id))
Run Code Online (Sandbox Code Playgroud)