FK 在创建 table 时导致崩溃

FK causing a crash while creating a table

以下 CREATE TABLE 无效:

CREATE TABLE IF NOT EXISTS `transacciones`.`jos_trans_sector` (
  `id_sector` INT NOT NULL,
  `nombre` VARCHAR(45) NULL DEFAULT NULL,
  PRIMARY KEY (`id_sector`),
  CONSTRAINT `fk_sector_empresa_sector1`
    FOREIGN KEY (`id_sector`)
    REFERENCES `transacciones`.`jos_trans_empresa_sector` (`id_sector`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;

我得到: Error Code: 1005. Can't create table 'transacciones.jos_trans_sector' (errno: 150)

如果我使用 SHOW ENGINE INNODB STATUS; 我得到以下输出:

------------------------
LATEST FOREIGN KEY ERROR
------------------------
170509 16:14:06 Error in foreign key constraint of table transacciones/jos_trans_sector:

    FOREIGN KEY (`id_sector`)
    REFERENCES `transacciones`.`jos_trans_empresa_sector` (`id_sector`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB:
Cannot find an index in the referenced table where the [...]

我查看了一些 post,他们在其中谈论 idFK 之间的不同类型,但我对两者都相同(INT )

有什么想法吗?

提前致谢。

这里的问题是 transacciones.jos_trans_empresa_sector table 缺少 id_sector 列上的索引,因此无法创建外键。

尝试添加唯一索引:

ALTER TABLE transacciones.jos_trans_empresa_sector
ADD UNIQUE INDEX idx_id_sector (id_sector);

然后再次尝试创建 table。