mysql - 我试图用 sql 实现这段代码,但仍然给我一个错误,我真的不知道为什么
问题描述
create table student (
student_ID number(6) primary key,
student_name varchar (25) unique ,
address varchar ,
sex char,
manager_ID number(6) REFERENCES maneger (manager_ID) ,
birth_date date NOT NULL
);
create table Classes (
class_ID number(6) primary key ,
student_ID number (6)REFERENCES student (student_ID), FOREIGN KEY
);
create table manager (
manager_ID number (6) primary key,
manager_name char ,
address varchar,
Teacher_ID number (6) FOREIGN KEY, REFERENCES teacher (Teacher_ID),
sex char
);
create table teacher (
Teacher_ID number (6), primary key,
teacher_name varchar,
address varchar ,
class_ID number (6) FOREIGN KEY REFERENCES Classes (class_ID) ,
subject_name varchar REFERENCES subject (subject_name)
);
create table subject (
subject_name varchar primary key,
marks number
);
create learn (
student_ID number (6) REFERENCES student (student_ID),
subject_name varchar REFERENCES subject (subject_name) ,
constraint PK_student primary key (student_ID,subject_name)
);
create table teach (
student_ID number (6)REFERENCES student (student_ID) ,
Teacher_ID number (6) REFERENCES teacher (Teacher_ID),
constraint PK_teach primary key (student_ID,Teacher_ID)
);
解决方案
您的代码中有多个问题:
- 很少有语法不正确
int(6)
应该使用而不是number(6)
在 mysql中使用varchar
必须有数据大小。-varchar(200)
- 创建引用表后必须创建外键
您的示例架构的正确语法示例很少是
create table student
(
student_ID int(6) primary key,
student_name varchar (25) unique ,
address varchar(200) ,
sex char(10),
manager_ID int(6),
birth_date date NOT NULL
);
create table Classes
(
class_ID int(6) primary key ,
student_ID int (6) references student (student_ID)
);
Db<> 摆弄正确的表定义。请使用添加外键alter table table_name add constraint ....
推荐阅读
- wordpress - 如何在我的服务器上托管我自己的自定义 Wordpress 主题?
- audio - Vimeo 嵌入问题:默认情况下,音频音量一直被调低
- google-chrome-devtools - Chrome 开发人员返回到 Sources 选项卡
- plot - 如何在 r 中用 xgboost 和 decision_tree 绘制树?
- azure - API 管理开发人员门户 CI/CD
- angular - 我应该为多个接口创建一个类或服务吗?
- elasticsearch - Elasticsearch Shard 分布大小差异很大
- c# - 从 MailItem (Microsoft.Office.Interop.Outlook) 中查找重复的电子邮件?
- sql - 发布后 60 天内流式传输的总分钟数?
- reactjs - 根据在表 React js 上选择了多少行来显示不同的东西