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

problema urgente con creacion de tablas!

Estas en el tema de problema urgente con creacion de tablas! en el foro de Mysql en Foros del Web. hola, soy un estudiante de ingenieria técnica de sistemas.Me encuentro actualmente realizando un proyecto y me he encontrado un problema que no doy solucionado.Intento crear ...
  #1 (permalink)  
Antiguo 18/06/2009, 04:44
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
problema urgente con creacion de tablas!

hola, soy un estudiante de ingenieria técnica de sistemas.Me encuentro actualmente realizando un proyecto y me he encontrado un problema que no doy solucionado.Intento crear una tabla correspondiente a una entidad débil y me da el siguiente error:

ERROR 1005 (HY000): Can't create table './fincas/linea_ejercicio.frm' (errno: 150)

las sentencias de creación son las siguientes:

create table fincas(
idCatastral varchar(20) not null,
ayuntamiento varchar(20) default null,
coordenadaX int default null,
coordenadaY int default null,
direccion varchar(35) default null,
nombre varchar(15) default null,
metros int default null,
tipo varchar(20) default null,
PRIMARY KEY(idCatastral)
) TYPE=InnoDB;

create table ejercicio(
idCatastral varchar(20) not null,
anho int(6) not null,
PRIMARY KEY(idCatastral, anho),
INDEX(idCatastral),
FOREIGN KEY(idCatastral) REFERENCES fincas(idCatastral) ON DELETE CASCADE
) TYPE=InnoDB;

create table linea_ejercicio(
anho int(6) not null,
num_linea int(10) not null,
descripcion varchar(50) default null,
fecha_registro date default null,
fecha_pago date default null,
PRIMARY KEY(anho, num_linea),
KEY ejercicio(anho),
FOREIGN KEY(anho) REFERENCES ejercicio(anho) ON DELETE CASCADE
) TYPE=InnoDB;

he probado a indexar anho pero bueno no era necesario por ser un tipo numerico.Alguien sabe cual es el error?gracias y un saludo!
  #2 (permalink)  
Antiguo 18/06/2009, 07:46
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, 3 meses
Puntos: 2658
Respuesta: problema urgente con creacion de tablas!

De entrada se puede ver un error: En la tabla LINEA_EJERCICIO estás definiendo mal una FOREIGN KEY.
Una FK es una clave que se referencia a la clave primaria de otra. Para que esto se cumpla los campos deben ser del mismo tipo, de la misma collation y cubrir toda la clave.
Este último caso no se cumple, porque la clave primaria en la tabla de origen tiene dos campos y en la tabla secundaria estás poniendo sólo uno. La FK debe abarcar siempre toda la clave y no una parte de ella.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/06/2009, 08:41
 
Fecha de Ingreso: junio-2009
Mensajes: 3
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: problema urgente con creacion de tablas!

muchas gracias no me habia dado cuenta :) ahora ya me funciona, muchas gracias por la corrección!
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 02:30.