6

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

primary key(course,subject,year);

但它不起作用。我仍然可以使用相同的课程、主题、年份组合创建两行。

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

4

2 回答 2

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)
于 2013-09-16T06:33:00.953 回答
4

如果您正在查看的是 mysql,您应该执行类似的操作

ALTER TABLE table_name ADD PRIMARY KEY (a, b, c);
于 2013-03-08T19:53:55.710 回答