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

时间:2013-03-08 19:43:58

标签: mysql composite-key composite-primary-key

我正在使用mysql server.where我创建了一个名为question的表。该表的列/属性是(课程,科目,年份,问题) 我想创建一个主键(或复合键)包括(课程+主题+年)。即对于特定的课程+主题+年组合,只能有一个问题。只有一行与(课程+主题+年)的组合,创建另一行是不可能的。 我是通过以下方式完成的:

primary key(course,subject,year);

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

谁能告诉我如何创建复合键?

2 个答案:

答案 0 :(得分: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)
);

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

ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (P_Id,LastName)

答案 1 :(得分:4)

如果是你正在看的mysql,你应该做类似于

的事情
ALTER TABLE table_name ADD PRIMARY KEY (a, b, c);