0

Web サーバーの phpmyadmin からエラー 150 が発生する理由がよくわかりません。ローカルでテーブルを作成すると正常に動作します。何か不足している可能性があります。

これが私のコードです:

テーブルの使用法

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;

テーブルパーファイル:

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;

このすべてのコードをローカル サーバーで実行すると問題なく動作しますが、Web サーバーから phpmyadmin でこれを作成しようとすると、エラー 105 が送信されます。

4

1 に答える 1

0

解決策は ENGINE INNODB を追加することでした。usuarios テーブルを作成するときに、最後の行 ENGINE = InnoDB; を入れませんでした。そして、私は MyISAM を取得していました。

MyISAM では fk を使用できないようです。エンジンを InnoDB に変更すると、すべてが正常に動作し始めます。

皆さんありがとう!

于 2016-06-18T13:09:25.867 に答える