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

error mysql SQL #1005 (errno 150)

Estas en el tema de error mysql SQL #1005 (errno 150) en el foro de Mysql en Foros del Web. Hola que tal, tengo un problema con mysql, y espero me puedan ayudar por favor, veran: estoy desarrollando un proyecto para la escuela en php ...
  #1 (permalink)  
Antiguo 05/05/2011, 02:57
 
Fecha de Ingreso: abril-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Exclamación error mysql SQL #1005 (errno 150)

Hola que tal, tengo un problema con mysql, y espero me puedan ayudar por favor, veran: estoy desarrollando un proyecto para la escuela en php y mysql, pero en una tabla necesito obtener dos campos obligatorios, numero de boleta y numero de libro, ambios campos los meto en la misma tabla porque van ligados, uno depende del otro por decirlo asi, pero ambos son de gran importancia, por lo que los dos serian llaves primarias, y esta "superclave" se enlaza a dos llaves foraneas, Numero_Libro y Numero_Boleta, pero me marca el siguiente error:

ERROR DE EJECUCION SQL #1005. respuesta de la base de datos
can´t create table '.\estacion_policias\infracciones.frm(errno:150)'

No se si mysql no soporta esto, o tengo error de sintaxis o que pueda estar pasando. Ambos en las dos tablas tienen el mismo tipo de dato, varchar(5) y manejo INNO DB para las dos.


CREATE DATABASE `Estacion_Policias` ;
USE `Estacion_Policias`;


-- -----------------------------------------------------
-- Table `Estacion_Policias`.`Boleta`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Estacion_Policias`.`Boleta` (
`NumeroBoleta` VARCHAR(5) NOT NULL ,
`NumeroLibro` VARCHAR(5) NOT NULL ,
PRIMARY KEY (`NumeroBoleta`, `NumeroLibro`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Estacion_Policias`.`Infracciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Estacion_Policias`.`Infracciones` (
`Folio` VARCHAR(15) NOT NULL ,
`Descripcion` VARCHAR(45) NOT NULL ,
`Numero_Boleta` VARCHAR(5) NOT NULL ,
`Numero_Libro` VARCHAR(5) NOT NULL ,
`Tipo_Libro` VARCHAR(45) NOT NULL ,
`Numero_Licencia_Chofer` INT NOT NULL ,
`Fecha` DATE NOT NULL ,
`Hora` TIME NOT NULL ,
`Calle` VARCHAR(45) NOT NULL ,
`Colonia` VARCHAR(45) NOT NULL ,
`Entre_calle1` VARCHAR(45) NOT NULL ,
`Entre_Calle2` VARCHAR(45) NULL ,
`Codigo_Localizacion` VARCHAR(4) NOT NULL ,
`Multa` INT NOT NULL ,
`Tipo_Multa` VARCHAR(45) NOT NULL ,
`Categoria_Multa` VARCHAR(45) NOT NULL ,
`Categoria_Infraccion` VARCHAR(45) NOT NULL ,
`Numero_Placa` VARCHAR(15) NOT NULL ,
`Num_Funcionario` VARCHAR(15) NOT NULL ,
PRIMARY KEY (`Folio`) ,
INDEX Codigo_Localizacion (`Codigo_Localizacion` ASC) ,
INDEX Numero_Placa (`Numero_Placa` ASC) ,
INDEX Numero_Licencia_Chofer (`Numero_Licencia_Chofer` ASC) ,
INDEX Categoria_Infraccion (`Categoria_Infraccion` ASC) ,
INDEX Num_Funcionario (`Num_Funcionario` ASC) ,
INDEX NumBoleta (`Numero_Boleta` ASC) ,
INDEX NumLibro (`Numero_Libro` ASC) ,
CONSTRAINT `Codigo_Localizacion`
FOREIGN KEY (`Codigo_Localizacion` )
REFERENCES `Estacion_Policias`.`Ciudades` (`idCiudad` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `Numero_Placa`
FOREIGN KEY (`Numero_Placa` )
REFERENCES `Estacion_Policias`.`Automovil` (`Numero_placa` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `Numero_Licencia_Chofer`
FOREIGN KEY (`Numero_Licencia_Chofer` )
REFERENCES `Estacion_Policias`.`Datos_conductor` (`Num_lic_chofer` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `Categoria_Infraccion`
FOREIGN KEY (`Categoria_Infraccion` )
REFERENCES `Estacion_Policias`.`Categoria_infracciones` (`idCategoria_infraccion` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `Num_Funcionario`
FOREIGN KEY (`Num_Funcionario` )
REFERENCES `Estacion_Policias`.`Datos_agente` (`Numero_Funcionario` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `NumBoleta`
FOREIGN KEY (`Numero_Boleta` )
REFERENCES `Estacion_Policias`.`Boleta` (`NumeroBoleta` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `NumLibro`
FOREIGN KEY (`Numero_Libro` )
REFERENCES `Estacion_Policias`.`Boleta` (`NumeroLibro` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;



Espero me puedan ayudar, de ante mano gracias
  #2 (permalink)  
Antiguo 05/05/2011, 05:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: error mysql SQL #1005 (errno 150)

Primero, asegúrate de que las tablas Ciudades, Automovil, Datos_conductor, Datos_agente y Boleta existan antes de que se indique crear esta tabla. Como la tabla en cuestión tiene FKs apuntando a esas tablas, la restricción requiere que las tablas base ya existan.
Es bastante habitual que algunos software de diseño de bases de datos generen errores de este tipo en los scripts.
Además, otra causa probable de error sería cuando los campos que se intentan vincular no son del mismo tipo o rango.
Verifícalo y luego vemos
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: sql
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 14:57.