组合主键(Composite Key)是由表中的多个列组合而成的主键。它可以唯一标识表中的每一行数据,通常用于多列共同决定唯一性的情况。
组合主键可以是单个列的主键,也可以是多个列的组合主键。
组合主键常用于以下场景:
假设我们有一个学生选课表 student_course
,其中包含学生ID (student_id
) 和课程ID (course_id
),这两个字段的组合应该是唯一的。
CREATE TABLE student_course (
student_id INT NOT NULL,
course_id INT NOT NULL,
PRIMARY KEY (student_id, course_id)
);
student_id
或 course_id
作为主键?原因:单独使用 student_id
或 course_id
作为主键无法保证唯一性,因为一个学生可以选多门课,一门课也可以被多个学生选。
解决方法:使用 student_id
和 course_id
的组合作为主键。
解决方法:在创建表时,使用 PRIMARY KEY
关键字指定多个列作为组合主键。
CREATE TABLE student_course (
student_id INT NOT NULL,
course_id INT NOT NULL,
PRIMARY KEY (student_id, course_id)
);
解决方法:可以使用 ALTER TABLE
语句添加组合主键。
ALTER TABLE student_course
ADD PRIMARY KEY (student_id, course_id);
通过以上内容,你应该对MySQL组合主键有了全面的了解,并且知道如何在实际应用中添加和使用组合主键。
领取专属 10元无门槛券
手把手带您无忧上云