0

MYSQL PHPMYADMIN とのテーブル リレーションシップを作成したいと考えています。

ここに画像の説明を入力

私はこの作成テーブルを持っています:

CREATE TABLE students(code_students int(8)not null AUTO_INCREMENT,
name_students varchar(25),
age_students int(3),
degree_program varchar(25),
code_advisor int(8)not null,
primary key(code_students, code_advisor)
);

そして、code_students、code_advisor の間の advisor 関係という名前の作成テーブルを作成したいと考えています。

わかりました、これは私の試しです。

CREATE TABLE advise (
code_students int(8),
code_advisor int(8),
primary key(code_students, code_advisor),
foreign key(code_students)references students(code_students),
foreign key(code_advisor)references students(code_advisor)
);
4

1 に答える 1

0

mySQLは次のように述べています。

A FOREIGN KEY constraint that references a non-UNIQUE key is not standard SQL. It is an InnoDB extension to standard SQL
最初のテーブルに UNIQUE キーワードを追加してみてください。

CREATE TABLE students(
   code_students int(8)not null unique AUTO_INCREMENT,
   name_students varchar(25),
   age_students int(3),
   degree_program varchar(25),
   code_advisor int(8)not null unique,
   primary key(code_students, code_advisor)
);

この sqlFiddle をチェックして、その仕組みを確認してから、 UNIQUE キーワードを削除してみて、言及したのと同じエラーが発生することを確認してください。(Build Schemaボタンを押す )

http://sqlfiddle.com/#!2/46b69

于 2012-11-23T11:03:03.100 に答える