错误150使用带外键的mysql创建表

时间:2016-04-24 19:11:24

标签: mysql phpmyadmin foreign-keys mysql-error-150

我不确定为什么我在我的网络服务器上从phpmyadmin收到错误150,当我在本地创建表格时工作正常,也许我错过了什么。

这是我的代码:

表usuarios

CREATE  TABLE IF NOT EXISTS `usuarios` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'LLave primaria de la tabla' ,
`nombre` VARCHAR(100) NULL COMMENT 'Nombre completo del usuario' ,
`email` VARCHAR(75) NULL COMMENT 'Login del usuario' ,
`password` VARCHAR(45) NULL COMMENT 'Clave del usuario' ,
`fecha_registro` DATETIME NULL COMMENT 'Fecha en la que se registro el usuario' ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;

表perfiles:

CREATE  TABLE IF NOT EXISTS `perfiles` (
`id` INT NOT NULL AUTO_INCREMENT COMMENT 'llave primaria de la tabla' ,
`nombre` VARCHAR(45) NULL COMMENT 'Descripción del perfil' ,
`fecha_registro` DATETIME NULL COMMENT 'fecha de registro' ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;

表usuarios_perfiles:

CREATE  TABLE IF NOT EXISTS `usuarios_perfiles` (
`usuario_id` INT NOT NULL ,
`perfil_id` INT NOT NULL ,
INDEX `fk_usuarios_perfiles_usuarios_idx` (`usuario_id` ASC) ,
INDEX `fk_usuarios_perfiles_perfiles1_idx` (`perfil_id` ASC) ,
CONSTRAINT `fk_usuarios_perfiles_usuarios`
FOREIGN KEY (`usuario_id` )
REFERENCES `usuarios` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_usuarios_perfiles_perfiles1`
FOREIGN KEY (`perfil_id` )
REFERENCES `perfiles` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

当我在我的本地服务器上运行所有这些代码时,它工作正常,但是当我想从我的网络服务器在phpmyadmin中创建它时,它会发送错误105.

1 个答案:

答案 0 :(得分:0)

解决方案是添加ENGINE INNODB,当我创建usuarios表时,我没有放最后一行ENGINE = InnoDB;我得到了MyISAM。

似乎MyISAM不让我使用fk。当我将ENGINE更改为InnoDB时,一切都开始正常运行。

全部谢谢!