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

[SOLUCIONADO] ERROR 1215: Cannot add foreign key constraint

Estas en el tema de ERROR 1215: Cannot add foreign key constraint en el foro de Mysql en Foros del Web. Estoy trabajando en la siguiente base de datos, en Workbench: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original create database tarea ; use tarea ;   create ...
  #1 (permalink)  
Antiguo 30/05/2013, 20:19
 
Fecha de Ingreso: mayo-2013
Ubicación: Morelos
Mensajes: 3
Antigüedad: 10 años, 10 meses
Puntos: 0
ERROR 1215: Cannot add foreign key constraint

Estoy trabajando en la siguiente base de datos, en Workbench:
Código MySQL:
Ver original
  1. use tarea;
  2.  
  3. create table Hospital (
  4.     NombreH varchar(20),
  5.     Direccion varchar(30),
  6.     primary key (NombreH)
  7. create table Paciente (
  8.     Nombre varchar(30),
  9.     Edad int,
  10.     Sexo varchar(1),
  11.     CURP int(10),
  12.     NumAf int(10),
  13.     primary key (NumAf)
  14. create table Doctor (
  15.     NomDoc varchar(20),
  16.     Direccion varchar(20),
  17.     CedPro int(10),
  18.     primary key (CedPro)
  19. create table Cita (
  20.     Dia varchar(20),
  21.     Hora varchar(10),
  22.     Nombre varchar(30),
  23.     NumAf int(10),
  24.     AnalisisO varchar(10),
  25.     AnalisisS varchar(10),
  26.     RayosX varchar(10),
  27.     Tomografia varchar(10),
  28.     NomDoc varchar(20),
  29.     primary key (Dia),
  30.     foreign key (Nombre)
  31.         references Paciente (Nombre),
  32.     foreign key (NumAf)
  33.         references Paciente (NumAf),
  34.     Foreign key (NomDoc)
  35.         references Doctor (NomDoc)
  36. create table Emergencia (
  37.     RSV varchar(20),
  38.     Especialidad varchar(20),
  39.     AnalisisO varchar(10),
  40.     AnalisisS varchar(10),
  41.     RayosX varchar(10),
  42.     Tomografia varchar(10),
  43.     NumAf int(10),
  44.     Nombre varchar(20),
  45.     primary key (Especialidad),
  46.     foreign key (NumAf)
  47.         references Paciente (NumAf),
  48.     foreign key (Nombre)
  49.         references Paciente (Nombre)
y me marca el siguiente error:
Error code:1215. Cannot add foreign key constraint

Alguien me puede decir que hacer, por favor

Última edición por gnzsoloyo; 30/05/2013 a las 20:27
  #2 (permalink)  
Antiguo 31/05/2013, 02:14
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 10 años, 11 meses
Puntos: 4
Respuesta: ERROR 1215: Cannot add foreign key constraint

Hola Jose Alberto.

A mí me chirria las foreign keys, que has puesto. Una foreign key debe hacer referencia a una primary key y en la tabla "cita" pones como foreign key a:
FOREIGN key (Nombre)
REFERENCES Paciente (Nombre),

FOREIGN key (NomDoc)
REFERENCES Doctor (NomDoc)

no siendo ninguna de ellas primary keys.
Lo mismo ocurre en la tabla "Emergencia" poniendo
FOREIGN key (Nombre)
REFERENCES Paciente (Nombre)

Tanto en la tabla "cita", como "emergencia" sólo deberían aparecer los campos, que son claves en las entidades fuertes. No deberían aparecer ningún otro campo, ya que estos se obtienen por joins.

Un saludo
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es

Etiquetas: Ninguno
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 19:23.