Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL外键错误1215,即使两个列的类型相同且不为空_Mysql_Foreign Keys - Fatal编程技术网

MySQL外键错误1215,即使两个列的类型相同且不为空

MySQL外键错误1215,即使两个列的类型相同且不为空,mysql,foreign-keys,Mysql,Foreign Keys,父表团队参与者: CREATE TABLE IF NOT EXISTS `team_entrant` ( `entrant_number` tinyint(4) NOT NULL, `qualifying_position` tinyint(4) NOT NULL, `qualifying_time` time(3) NOT NULL, `grid_position` tinyint(4) DEFAULT NULL, `best_race_time` datetime DEF

父表
团队参与者

CREATE TABLE IF NOT EXISTS `team_entrant` (
  `entrant_number` tinyint(4) NOT NULL,
  `qualifying_position` tinyint(4) NOT NULL,
  `qualifying_time` time(3) NOT NULL,
  `grid_position` tinyint(4) DEFAULT NULL,
  `best_race_time` datetime DEFAULT NULL,
  `final_position` tinyint(4) DEFAULT NULL,
  `dnf_reason` varchar(45) DEFAULT NULL,
  `team_id` int(11) NOT NULL,
  `competition_year` date NOT NULL,
  PRIMARY KEY (`entrant_number`),
  KEY `fk_team_entrant_team1_idx` (`team_id`),
  CONSTRAINT `fk_team_entrant_team1` FOREIGN KEY (`team_id`) REFERENCES `team` (`team_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
子表/关联表
entrant\u驱动程序

CREATE TABLE IF NOT EXISTS `entrant_drivers` (
  `entrant_number` tinyint(4) NOT NULL,
  `competition_year` date NOT NULL,
  `driver_id` int(11) NOT NULL,
  PRIMARY KEY (`entrant_number`,`competition_year`,`driver_id`),
  CONSTRAINT `ed_entrant_fk` FOREIGN KEY (`entrant_number`) REFERENCES `team_entrant` (`entrant_number`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
当时团队参赛者栏
竞赛年
不存在

HeidiSQL拒绝执行以下代码:

ALTER table entrant_drivers ADD CONSTRAINT ed_comp_year_fk FOREIGN KEY (competition_year) REFERENCES team_entrant(competition_year);
SQL错误(1215):无法添加外键约束

关联表涉及的无关表,
驱动程序

-- Dumping structure for table 99_lemans_db1.driver
CREATE TABLE IF NOT EXISTS `driver` (
  `driver_id` int(11) NOT NULL,
  `driver_name` varchar(64) NOT NULL,
  `driver_nationality` varchar(32) NOT NULL,
  `driver_birth_day` date NOT NULL,
  `driver_best_previous_finish_class` varchar(8) DEFAULT NULL,
  `driver_best_previous_finish_position` tinyint(4) DEFAULT NULL,
  `team_entrant_id` int(11) NOT NULL,
  PRIMARY KEY (`driver_id`,`team_entrant_id`),
  KEY `fk_driver_team_entrant1_idx` (`team_entrant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

任何帮助都将不胜感激。

必须将父列指定为索引/主键

参赛队应该由组合主键(参赛人数、比赛年份)组成