Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

errno: 150

Estas en el tema de errno: 150 en el foro de Mysql en Foros del Web. Tengo las tres siguientes tablas: CREATE TABLE `clave` ( `clave` VARCHAR( 25 ) NOT NULL , `tipo` VARCHAR( 25 ) NOT NULL , PRIMARY KEY ...
  #1 (permalink)  
Antiguo 11/04/2012, 06:03
 
Fecha de Ingreso: marzo-2012
Mensajes: 10
Antigüedad: 7 años, 10 meses
Puntos: 0
errno: 150

Tengo las tres siguientes tablas:

CREATE TABLE `clave` (
`clave` VARCHAR( 25 ) NOT NULL ,
`tipo` VARCHAR( 25 ) NOT NULL ,
PRIMARY KEY ( `clave` )
) ENGINE = innodb;

CREATE TABLE `metodo` (
`semilla` VARCHAR( 100 ) NOT NULL ,
`algoritmo` VARCHAR( 5 ) NOT NULL ,
PRIMARY KEY ( `semilla`,`algoritmo` )
) ENGINE = innodb;

REATE TABLE `clave_metodo` (
`clave` VARCHAR( 25 ) NOT NULL ,
`semilla` VARCHAR( 100 ) NOT NULL ,
`algoritmo` VARCHAR( 5 ) NOT NULL ,
PRIMARY KEY ( `clave`,`semilla`,`algoritmo` )
) ENGINE = innodb;

Al realizar las siguientes modificaciones, no me crea la segunda, me arroja el error (errno:150) Revise los tipos de datos: algoritmo.

ALTER TABLE `clave_metodo` ADD FOREIGN KEY (`semilla`) REFERENCES `proyecto`.`metodo` (`semilla`) ON DELETE CASCADE;

ALTER TABLE `clave_metodo` ADD FOREIGN KEY (`algoritmo`) REFERENCES `proyecto`.`metodo` (`algoritmo`) ON DELETE CASCADE;

Usan el mismo tipo de datos, mismo motor, misma codificación, he buscado por muchos sitios pero no encuentro la solución a mi problema. ¿Alquien sabe que les lo que puede pasar?
  #2 (permalink)  
Antiguo 11/04/2012, 07:02
 
Fecha de Ingreso: junio-2011
Mensajes: 139
Antigüedad: 8 años, 7 meses
Puntos: 42
Respuesta: errno: 150

Hola caminventssa,

Trata lo siguiente:

Código SQL:
Ver original
  1. CREATE TABLE `clave_metodo` (
  2.   `clave` VARCHAR(25) NOT NULL,
  3.   `semilla` VARCHAR(100) NOT NULL,
  4.   `algoritmo` VARCHAR(5) NOT NULL,
  5.   PRIMARY KEY (`clave`,`semilla`,`algoritmo`),
  6.   KEY `fk_clave_metodo` (`semilla`,`algoritmo`),
  7.   CONSTRAINT `fk_clave_metodo` FOREIGN KEY (`semilla`, `algoritmo`) REFERENCES `metodo` (`semilla`, `algoritmo`) ON DELETE CASCADE
  8. ) ENGINE=InnoDB;

Si ya tienes creada la tabla, trata:

Código SQL:
Ver original
  1. ALTER TABLE `clave_metodo` ADD CONSTRAINT `fk_clave_metodo` FOREIGN KEY (`semilla`, `algoritmo`) REFERENCES `metodo` (`semilla`, `algoritmo`) ON DELETE CASCADE;

Última edición por wchiquito; 11/04/2012 a las 07:08

Etiquetas: 150, errno, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.