代码之家  ›  专栏  ›  技术社区  ›  RbG

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

  •  6
  • RbG  · 技术社区  · 11 年前

    我正在使用mysql服务器。在这里我创建了一个名为question的表。该表的列/属性为(课程、主题、年份、问题) 我想创建一个由(课程+科目+年份)组成的主键(或复合键)。即,对于特定的课程+科目+年份组合,只能有一个问题。只有一行的组合为(课程+科目+year),不可能创建另一行。 我做到了:

    primary key(course,subject,year);
    

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

    有人能告诉我如何创建复合密钥属性吗????

    2 回复  |  直到 11 年前
        1
  •  6
  •   RbG    9 年前

    语法为 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)
    
        2
  •  4
  •   bizzehdee    11 年前

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

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