【问题标题】:how to make a relationship table between two table? SQL如何制作两个表之间的关系表? SQL
【发布时间】:2020-04-01 15:41:12
【问题描述】:

我是 SQL 新手,我正在尝试为研究生和项目制作关系表。该项目由被称为该项目研究助理的研究生负责。我的问题是我收到错误代码:1064,如何解决?我无法确定问题所在。

CREATE TABLE Professor(
Prof_SSN VARCHAR(12),
Prof_Name VARCHAR(12),
Prof_Age VARCHAR(3),
`Rank` VARCHAR(12),
`Research Specialty` VARCHAR(12),
PRIMARY KEY (Prof_SSN)
);

CREATE TABLE `Graduate Students`(
Std_SSN VARCHAR(12),
Std_Name VARCHAR(12),
Std_Age VARCHAR(3),
Degree VARCHAR(12),
PRIMARY KEY (Std_SSN)
);

CREATE TABLE Projects(
`Project number` VARCHAR(10),
`Starting date` VARCHAR(12),
Deadline VARCHAR(8),
Sponsor VARCHAR(12),
Budget VARCHAR(12),
PRIMARY KEY (`Project number`)
);

CREATE TABLE `Project’s Research Assistants`(
Std_SSN VARCHAR(12),
`Project number` VARCHAR(10),
PRIMARY KEY (`Project number`)
FOREIGN KEY (Std_SSN) REFERENCES `Graduate Students`
);```

【问题讨论】:

  • 完整、准确的错误信息是什么?
  • 您没有在最后一个表的外键定义的REFERENCES 子句中指定列。另外:使用空格的列名和表名是不必要的痛苦。将“人性化”命名留给表示层。

标签: sql relationship sqlyog


【解决方案1】:

最后一次创建表应该是:

CREATE TABLE `Project’s Research Assistants` (
  Std_SSN VARCHAR(12),
  `Project number` VARCHAR(10),
  PRIMARY KEY (`Project number`)
  FOREIGN KEY (Std_SSN) REFERENCES `Graduate Students` (Std_SSN) -- fixed here
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2014-03-12
    • 2011-04-27
    • 2016-06-27
    • 2017-07-31
    • 1970-01-01
    • 2013-09-01
    相关资源
    最近更新 更多