我正在使用mysql server.where我创建了一个名为question的表。该表的列/属性是(课程,科目,年份,问题) 我想创建一个主键(或复合键)包括(课程+主题+年)。即对于特定的课程+主题+年组合,只能有一个问题。只有一行与(课程+主题+年)的组合,创建另一行是不可能的。 我是通过以下方式完成的:
primary key(course,subject,year);
但它不起作用。我可以创建两行,当然,主题,年份相同的组合。
谁能告诉我如何创建复合键?
答案 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);