在 MySql 工作台中,我在使用外键创建表时遇到错误

问题描述 投票:0回答:1
CREATE TABLE subject (
  id int NOT NULL,
  subjectName varchar(50) DEFAULT NULL,
  PRIMARY KEY (id)
)

CREATE TABLE student(
  StudentId int NOT NULL,
  Name varchar(50) DEFAULT NULL,
  Email varchar(50) DEFAULT NULL,
  Address varchar(255) DEFAULT NULL,
  PRIMARY KEY (StudentId)
)

create table StudentSubject(
    StudentId int,  
     SubjectId int,
    primary key(StudentId, SubjectId),
    foreign key(StudentId) references student(StudentId),
    foreign key(SubjectId) references subject(id)
);

我收到此错误:

创建表StudentSubject(StudentId int,SubjectId int, 主键(StudentId、SubjectId)、外键(StudentId) 引用学生(StudentId),外键(SubjectId)引用 主题(id))

错误代码:1824。无法打开引用的表“student”0.000 秒

sql mysql mysql-workbench
1个回答
0
投票

问题是你的 mysql 语句正在搜索分号。 Mysql 通过查找分号来判断下一条语句是否是新语句。

在你的情况下,你只需要输入“;”创建表语句后,然后开始新的。

CREATE TABLE subject (
  id int NOT NULL,
  subjectName varchar(50) DEFAULT NULL,
  PRIMARY KEY (id)
);

CREATE TABLE student(
  StudentId int NOT NULL,
  Name varchar(50) DEFAULT NULL,
  Email varchar(50) DEFAULT NULL,
  Address varchar(255) DEFAULT NULL,
  PRIMARY KEY (StudentId)
);

create table StudentSubject(
    StudentId int,  
     SubjectId int,
    primary key(StudentId, SubjectId),
    foreign key(StudentId) references student(StudentId),
    foreign key(SubjectId) references subject(id)
);
© www.soinside.com 2019 - 2024. All rights reserved.