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 之间创建一个名为建议关系的创建表。

好的,这是我的试用。

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 回答