mysql - 在 MySQL 中的两个表之间定义外键时出现问题
问题描述
错误代码:1215。无法添加外键约束
我不确定我在哪里遇到这个问题,这是有问题的两张表,任何帮助将不胜感激!
CREATE TABLE IF NOT EXISTS `PHL_db`.`Session` (
`year` INT NOT NULL,
`season` VARCHAR(50) NOT NULL,
`division` VARCHAR(25) NOT NULL,
PRIMARY KEY (`year`, `season`, `division`))
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `PHL_db`.`Team` (
`name` VARCHAR(100) NOT NULL DEFAULT 'Free Agent',
`Session_season` VARCHAR(50) NOT NULL,
`Session_year` INT NOT NULL,
`Session_division` VARCHAR(25) NOT NULL,
PRIMARY KEY (`name`, `Session_season`, `Session_year`, `Session_division`),
FOREIGN KEY (`Session_season` , `Session_year` , `Session_division`)
REFERENCES `PHL_db`.`Session` ( `year`, `season` , `division`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
解决方案
您正在尝试将主键作为外键,其中主键不能用作同一张表上的外键。
推荐阅读
- html - 将数据绑定到另一个组件并使用 @Input、@Output 和 EventEmitter 以角度方式使用它
- java - 在 micronaut 中启动异步辅助线程(或回调)的正确方法
- java - Apache Camel Spring WS 中的连接池抛出错误
- python - 如何使用正则表达式删除乳胶文件中的所有数学表达式
- laravel-5.7 - 使用 foreach 循环在刀片中渲染数据
- php - 如何以最简单的方式进行访问级别控制?
- groovy - 从 json 数组键中获取值以 @ 开头
- android - androidTest 未编译,显示无法解析符号
- python - 如何在 if 语句中使用多个“not in”?
- django - Django休息嵌套序列化程序不显示字段