2016-04-24 58 views
0

私はWebサーバーのphpmyadminから150というエラーが出るのは本当にわかりません。ローカルのテーブルを作成するとうまく動作します。ここでエラー150外部キーを持つmysqlでテーブルを作成する

は私のコードです:

表の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を送信します。

+0

これは私のローカルサーバ( 'mysql Ver 15.1 Distrib 10.0.23-MariaDB、Linux(x86_64)for readline 5.1'を使用しています)でうまく動作します。あなたは正確なエラーのテキストを分かりますか? – Mureinik

+0

それは私にこれを送ります:#1005 - テーブル 'database.usuarios_perfiles'(errno:150)を作成できません –

+0

sqlfiddleでも動作します:http://sqlfiddle.com/#!2/617e19 –

答えて

0

解決策はENGINE INNODBを追加することでした。私がusuariosテーブルを作成するとき、 ENGINE = InnoDB行。私はMyISAMを手に入れました。

MyISAMは私にfkを使用させてくれないようです。 ENGINEをInnoDBに変更すると、すべてが正しく動作するようになります。

ありがとうございます!

関連する問題