mysql – 无法添加外键约束

weixin_38093608 2019-09-12 12:15:55
据我所知它应该工作,我经历了其他类似的问题,但似乎是一个不同的事情导致相同的错误. CREATE TABLE Job ( JobNumber INT NOT NULL, JobName CHAR(30) NOT NULL, JobDescription CHAR(60) NOT NULL, Title Char(30) NOT NULL, PersonID INT NOT NULL, CONSTRAINT PK_JobNum PRIMARY KEY (JobNumber) ); CREATE TABLE Employee ( PersonID INT NOT NULL, FirstName CHAR(30) NOT NULL, LastName CHAR(30) NOT NULL, CONSTRAINT Pk_PersonID PRIMARY KEY(PersonID), CONSTRAINT FK_Job_2_Employee FOREIGN KEY(PersonID) REFERENCES Job(PersonID) ); CREATE TABLE Game ( GameNumber INT NOT NULL, Title CHAR(30) NOT NULL, System CHAR(30) NOT NULL, CONSTRAINT PK_GameNumber PRIMARY KEY(GameNumber), CONSTRAINT FK_Job_2_Game FOREIGN KEY(Title) REFERENCES Job(Title) ); 当我尝试初始化第二个表时出现错误. (它可能会出现在第三个.) >多人可以拥有相同的工作,一个人可以拥有多个工作.> JobNumber和JobName不是一回事.每个JobNumber只有一个员工,而一个JobNumber只有一个JobName.> JobNumber和一个人的工作不是一回事.>工作号码和工作类型不是一回事.例如,工作号1235和1435都可以拥有作业“级别设计者”.
...全文
55 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38122514 2019-09-12
  • 打赏
  • 举报
回复
看来你把外键放在错误的表上. Jobs表上的PersonID列应该引用Employee表上的PersonID. 如果要将人员分配给作业,则原始外键应位于JobId上.这需要将JobId添加到Employees表并从Jobs表中删除PersonId. 如果员工可以拥有多个职位,而职位可以拥有多个员工,那么您将需要一个联接表.它将具有Jobs和Employees表的外键.连接表的主键将包括PersonId和JobId.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧