如何在MySQL数据库中创建复合键

Rit*_*tam 4 mysql composite-key composite-primary-key

我正在使用mysql server.where我创建了一个名为question的表.这个表的列/属性是(课程,主题,年份,问题)我想创建一个主键(或复合键)由(课程+主题+年)组成.即对于特定的课程+主题+年组合,只能有一个问题.只有一行与(课程+主题+年)的组合,创建另一行是不可能的.我做到了:

primary key(course,subject,year);
Run Code Online (Sandbox Code Playgroud)

但它不工作.我可以创建两行,当然,主题,年份相同的组合.

任何人都可以告诉我,我怎么能创建一个复合键propery ????

Rit*_*tam 6

语法是CONSTRAINT constraint_name PRIMARY KEY(col1,col2,col3)例如::

CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)

如果您在创建表时正在编写上面的示例,例如::

CREATE TABLE person (
   P_Id int ,
   ............,
   ............,
   CONSTRAINT pk_PersonID PRIMARY KEY (P_Id,LastName)
);
Run Code Online (Sandbox Code Playgroud)

要将此约束添加到现有表,您需要遵循以下语法

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (P_Id,LastName)
Run Code Online (Sandbox Code Playgroud)