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

Error al añadir clave extrangera(mysql)

Estas en el tema de Error al añadir clave extrangera(mysql) en el foro de Bases de Datos General en Foros del Web. Hola! Tengo una base de datos hecha en mysql, formada por unas cuantas tablas. Tengo dos tablas: administrador y accesoadm. administrador esta formada por tres ...
  #1 (permalink)  
Antiguo 11/08/2005, 10:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 6 meses
Puntos: 0
Error al añadir clave extrangera(mysql)

Hola!

Tengo una base de datos hecha en mysql, formada por unas cuantas tablas.
Tengo dos tablas: administrador y accesoadm.

administrador esta formada por tres atributos nombre, apellido y dni, siendo la clave dni.

acceso administrador esta formada por tres atributos nombre, clave y dni y las tres son claves. Pero ahora quiero modificar esta tabla y hacer que dni sea una clave extrangera y lo hago de la siguiente manera:

alter table accesoadm add foreign key (dni)
references administrador(dni) on delete cascade;

pero me da el siguiente error:

Can't create table '.\colegio\#sql-2b4_48.frm' (errno: 150)

Alguien sabe a que se debe?

Gracias
  #2 (permalink)  
Antiguo 11/08/2005, 10:51
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Las tablas están vacías? Si no lo están elimina su contenido y prueba otra vez

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #3 (permalink)  
Antiguo 11/08/2005, 11:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 6 meses
Puntos: 0
Si las tablas estan vacias, pero puede ser que me de el error porque el atributo dni no lo tengo como un index, es decir yo construi la tabla de la siguiente manera:

create table accesoadm (nombre varchar(45) not null,
clave varchar(45) not null,
dni varchar(9) not null,
primary key (nombre, clave, dni),
foreign key (dni) references administrador(dni) on delete cascade)type=Innodb;

Y no puse index(dni)
  #4 (permalink)  
Antiguo 11/08/2005, 11:11
Avatar de jose rayado  
Fecha de Ingreso: mayo-2005
Ubicación: Monterrey
Mensajes: 35
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola que tal

si quieres checa esto
http://mysql.conclase.net/curso/inde...a#007_foraneas


saludos
  #5 (permalink)  
Antiguo 11/08/2005, 11:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 184
Antigüedad: 20 años, 6 meses
Puntos: 0
Pues lo dicho, que me faltaba crear un indice del atributo que quiero crear como clave foranea.

Muchas gracias a todos.
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 12:51.