6

私はmysqlサーバーで作業しています。ここで、 question という名前のテーブルを作成しました。このテーブルの列/属性は (コース、科目、年、質問) (コース + 科目 + 年) で構成される主キー (または複合キー) を作成したいです。つまり、特定のコース + 科目 + 年の組み合わせに対して、質問は 1 つしか存在できません。(コース + 科目 + 年) の組み合わせを持つ行は 1 つだけです。別の行を作成することはできません。私はそれをしました:

primary key(course,subject,year);

しかし、それは機能していません。それでも、コース、科目、年の同じ組み合わせで2つの行を作成できます。

複合キープロパティを作成する方法を誰か教えてもらえますか????

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 に答える