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,他们在其中谈论 id
和 FK
之间的不同类型,但我对两者都相同(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。
以下 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,他们在其中谈论 id
和 FK
之间的不同类型,但我对两者都相同(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。