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

integridad referencial

Estas en el tema de integridad referencial en el foro de Bases de Datos General en Foros del Web. Mi problema es el siguiente: Quiero tener dos tablas vinculadas, en la primera (la cual llamo Principal) tengo una clave primaria (id_principal) y la creo ...
  #1 (permalink)  
Antiguo 12/06/2004, 11:26
 
Fecha de Ingreso: junio-2004
Mensajes: 232
Antigüedad: 19 años, 11 meses
Puntos: 0
integridad referencial

Mi problema es el siguiente:
Quiero tener dos tablas vinculadas, en la primera (la cual llamo Principal) tengo una clave primaria (id_principal) y la creo como INNODB pero el problema me viene cuando quiero crear la segunda. Aqui os pongo como la quiero crear y el error q me da:

create table segunda(
id_segunda tinyint unsigned not null auto_increment,
id_principal tinyint not null,
nombre_album varchar(35),
primary key (id_segunda),
index (id_principal),
foreign key (id_principal) references principal(id_principal)
) type = innodb;

Es decir q la clave foranea es id_principal q pertenece a la tabla principal. Parece q lo hago todo bien pero me sale el siguiente error:

Error 1005: can´t create table '.\musica\segunda.frm' (errno: 150)

Segun he leido por ahi este error se debe a q la creación de la tabla falló porque la restricción de la clave foránea no se hizo de la manera adecuada.
Alguien sabe como deberia poner esto para q no me diera ese error?
Si es posible q me ponga el ejemplo para fijarme.
Gracias
  #2 (permalink)  
Antiguo 15/06/2004, 05:03
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola,
creo que tu error se debe a que no creas correctamente la clave foránea, es decir, los dos campos relacionados tienen que ser del mismo tipo o similares. Comprueba que sean del mismo tipo

Aqui tienes el error que te da, buscalo en la pagina y veras...
http://dev.mysql.com/doc/mysql/en/In...nstraints.html

un saludo.
__________________
If you think fuck is funny, fuck yourself and save your money,
espero que entendais la moraleja... je, je, je
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 16:53.