elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Problema con las claves foraneas (errno 150)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con las claves foraneas (errno 150)  (Leído 1,464 veces)
Proteus1989

Desconectado Desconectado

Mensajes: 184



Ver Perfil WWW
Problema con las claves foraneas (errno 150)
« en: 29 Diciembre 2012, 04:28 »

Os pongo directamente el código a ver si conseguís dar con el error, porque yo no lo encuentro por ningún lado.
El error me da al crear la tabla privates_zones

Código
  1. -- -----------------------------------------------------
  2. -- Table `mydb`.`guest_zones`
  3. -- -----------------------------------------------------
  4. CREATE  TABLE IF NOT EXISTS `mydb`.`guest_zones` (
  5.  `player_name` VARCHAR(45) NOT NULL ,
  6.  `zone_name` VARCHAR(45) NOT NULL ,
  7.  PRIMARY KEY (`player_name`, `zone_name`) )
  8. ENGINE = InnoDB;
  9.  
  10.  
  11. -- -----------------------------------------------------
  12. -- Table `mydb`.`privates_zones`
  13. -- -----------------------------------------------------
  14. CREATE  TABLE IF NOT EXISTS `mydb`.`privates_zones` (
  15.  `zone_name` VARCHAR(45) NOT NULL ,
  16.  `player_name` VARCHAR(45) NOT NULL ,
  17.  `price` INT NULL ,
  18.  PRIMARY KEY (`zone_name`) ,
  19.  CONSTRAINT `fk_privates_zones_guest_zones1`
  20.    FOREIGN KEY (`zone_name` )
  21.    REFERENCES `mydb`.`guest_zones` (`zone_name` )
  22.    ON DELETE CASCADE
  23.    ON UPDATE CASCADE)
  24. ENGINE = InnoDB;
  25.  
  26. -- -----------------------------------------------------
  27. -- Table `mydb`.`users`
  28. -- -----------------------------------------------------
  29. CREATE  TABLE IF NOT EXISTS `mydb`.`users` (
  30.  `player_name` VARCHAR(45) NOT NULL ,
  31.  `vip` TINYINT(1) NULL ,
  32.  PRIMARY KEY (`player_name`) ,
  33.    CONSTRAINT `fk_users_privates_zones1`
  34.    FOREIGN KEY (`player_name` )
  35.    REFERENCES `mydb`.`privates_zones` (`player_name` )
  36.    ON DELETE CASCADE
  37.    ON UPDATE CASCADE)
  38. ENGINE = InnoDB;
  39.  

Espero sepáis resolverme la duda.


En línea

RevangelyonX

Desconectado Desconectado

Mensajes: 245


Ver Perfil WWW
Re: Problema con las claves foraneas (errno 150)
« Respuesta #1 en: 30 Diciembre 2012, 23:51 »

Hola,

Al hacer referencia en la segunda tabla al primary key de la primera ya no da error:

Código:
-- -----------------------------------------------------
-- Table `mydb`.`privates_zones`
-- -----------------------------------------------------
CREATE  TABLE IF NOT EXISTS `mydb`.`privates_zones` (
 `zone_name` VARCHAR(45) NOT NULL ,
 `player_name` VARCHAR(45) NOT NULL ,
 `price` INT NULL ,
 PRIMARY KEY (`zone_name`) ,
 CONSTRAINT `fk_privates_zones_guest_zones1`
   FOREIGN KEY (`player_name`, `zone_name` )
  REFERENCES `mydb`.`guest_zones` (`player_name`,`zone_name` )
   ON DELETE CASCADE
   ON UPDATE CASCADE)
ENGINE = InnoDB;

De todos modos, ejecuta la siguiente sentencia desde la consola de MySQL (suponiendo que tengas privilegios):

Código:
> SHOW ENGINE INNODB STATUS

Donde verás errores como el siguiente:

Código:
LATEST FOREIGN KEY ERROR
...
Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
Note that the internal storage type of ENUM and SET changed in
tables created with >= InnoDB-4.1.12, and such columns in old tables
cannot be referenced by such columns in new tables.
See http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
for correct foreign key definition.

Luego en el siguiente enlace tienes posibles causas y solucions del error:

www.eliacom.com/mysql-gui-wp-errno-150.php

Salu2


En línea

Just Linux
OSCP certified
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
llaves foraneas y primarias
Bases de Datos
m@o_614 1 1,208 Último mensaje 2 Mayo 2013, 06:53
por Carloswaldo
llaves foraneas
Bases de Datos
m@o_614 4 1,929 Último mensaje 31 Marzo 2014, 17:57
por Carloswaldo
duda con llaves foraneas
Bases de Datos
d91 1 836 Último mensaje 31 Agosto 2015, 21:35
por Carloswaldo
Claves foráneas recursivas en Laravel
Bases de Datos
Patrick Bateman 0 1,670 Último mensaje 6 Abril 2017, 20:48
por Patrick Bateman
IOError: [Errno 0] Error
Scripting
Sentex 1 969 Último mensaje 16 Enero 2018, 16:27
por Sentex
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines