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

Mysql error1215

Estas en el tema de Mysql error1215 en el foro de Mysql en Foros del Web. Al crear la conecion para despues hacer los registros me aparece este error @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original Executing SQL script in server ERROR: ...
  #1 (permalink)  
Antiguo 06/09/2015, 20:06
 
Fecha de Ingreso: abril-2015
Mensajes: 7
Antigüedad: 9 años
Puntos: 0
Mysql error1215

Al crear la conecion para despues hacer los registros me aparece este error
Código MySQL:
Ver original
  1. Executing SQL script in server
  2. ERROR: Error 1215: Cannot add foreign key constraint
  3. SQL Code:
  4.         -- -----------------------------------------------------
  5.         -- Table `CBTis168`.`Alumnos_5Semestre_Matutino_LC`
  6.         -- -----------------------------------------------------
  7.         CREATE TABLE IF NOT EXISTS `CBTis168`.`Alumnos_5Semestre_Matutino_LC` (
  8.           `ID_Alumnos` INT NOT NULL COMMENT '',
  9.           `Nombre(s)` VARCHAR(60) NULL COMMENT '',
  10.           `Apellidos` VARCHAR(60) NULL COMMENT '',
  11.           `Especialidad` VARCHAR(45) NULL COMMENT '',
  12.           `Grado` INT NULL COMMENT '',
  13.           `Grupo` VARCHAR(45) NULL COMMENT '',
  14.           `Maestros_Ingles_ID_Maestro_Ingles` INT NOT NULL COMMENT '',
  15.           `Maestros_Fisica_ID_Maestro_Fisica` INT NOT NULL COMMENT '',
  16.           `Maestros_TICS_POAO_CTSYV_PDT_ID_Maestros_TICS_POAO_CTSYV_PDT` INT NOT NULL COMMENT '',
  17.           `Maestros_Calculo_Integral_ID_Maestro_Calculo_Integral` INT NOT NULL COMMENT '',
  18.           `Maestros_Biologia_METP_AYFS_ID_Maestro_Biologia_METP_AYFS` INT NOT NULL COMMENT '',
  19.           `Maestros_AHYSBYH_ID_Maestro_AHYSBYH` INT NOT NULL COMMENT '',
  20.           PRIMARY KEY (`ID_Alumnos`)  COMMENT '',
  21.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Ingles1_idx` (`Maestros_Ingles_ID_Maestro_Ingles` ASC)  COMMENT '',
  22.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Fisica1_idx` (`Maestros_Fisica_ID_Maestro_Fisica` ASC)  COMMENT '',
  23.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_TICS_POAO_CTSYV_P_idx` (`Maestros_TICS_POAO_CTSYV_PDT_ID_Maestros_TICS_POAO_CTSYV_PDT` ASC)  COMMENT '',
  24.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Calculo_Integral1_idx` (`Maestros_Calculo_Integral_ID_Maestro_Calculo_Integral` ASC)  COMMENT '',
  25.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Biologia_METP_AYF_idx` (`Maestros_Biologia_METP_AYFS_ID_Maestro_Biologia_METP_AYFS` ASC)  COMMENT '',
  26.           INDEX `fk_Alumnos_5Semestre_Matutino_LC_Maestros_AHYSBYH1_idx` (`Maestros_AHYSBYH_ID_Maestro_AHYSBYH` ASC)  COMMENT '',
  27.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Ingles1`
  28.             FOREIGN KEY (`Maestros_Ingles_ID_Maestro_Ingles`)
  29.             REFERENCES `CBTis168`.`Maestros_Ingles` (`ID_Maestro_Ingles`)
  30.             ON DELETE NO ACTION
  31.             ON UPDATE NO ACTION,
  32.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Fisica1`
  33.             FOREIGN KEY (`Maestros_Fisica_ID_Maestro_Fisica`)
  34.             REFERENCES `CBTis168`.`Maestros_Fisica` (`ID_Maestro_Fisica`)
  35.             ON DELETE NO ACTION
  36.             ON UPDATE NO ACTION,
  37.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_TICS_POAO_CTSYV_PDT1`
  38.             FOREIGN KEY (`Maestros_TICS_POAO_CTSYV_PDT_ID_Maestros_TICS_POAO_CTSYV_PDT`)
  39.             REFERENCES `CBTis168`.`Maestros_TICS_POAO_CTSYV_PDT` (`ID_Maestros_TICS_POAO_CTSYV_PDT`)
  40.             ON DELETE NO ACTION
  41.             ON UPDATE NO ACTION,
  42.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Calculo_Integral1`
  43.             FOREIGN KEY (`Maestros_Calculo_Integral_ID_Maestro_Calculo_Integral`)
  44.             REFERENCES `CBTis168`.`Maestros_Calculo_Integral` (`ID_Maestro_Calculo_Integral`)
  45.             ON DELETE NO ACTION
  46.             ON UPDATE NO ACTION,
  47.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_Biologia_METP_AYFS1`
  48.             FOREIGN KEY (`Maestros_Biologia_METP_AYFS_ID_Maestro_Biologia_METP_AYFS`)
  49.             REFERENCES `CBTis168`.`Maestros_Biologia_METP_AYFS` (`ID_Maestro_Biologia_METP_AYFS`)
  50.             ON DELETE NO ACTION
  51.             ON UPDATE NO ACTION,
  52.           CONSTRAINT `fk_Alumnos_5Semestre_Matutino_LC_Maestros_AHYSBYH1`
  53.             FOREIGN KEY (`Maestros_AHYSBYH_ID_Maestro_AHYSBYH`)
  54.             REFERENCES `CBTis168`.`Maestros_AHYSBYH` (`ID_Maestro_AHYSBYH`)
  55.             ON DELETE NO ACTION
  56.             ON UPDATE NO ACTION)
  57.         ENGINE = InnoDB
  58.  
  59. SQL script execution finished: statements: 34 succeeded, 1 failed
  60.  
  61. Fetching back view definitions in final form.
  62. Nothing to fetch

Última edición por gnzsoloyo; 07/09/2015 a las 08:21 Razón: Codigo sin etiquetar...
  #2 (permalink)  
Antiguo 07/09/2015, 08:03
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Mysql error1215

Hola alexismdash:

El error es bastante exacto en su descripción, tienes un problema con las llaves foráneas. De hecho, si quitas la parte de la definición de las FK te darás cuenta de que la tabla se puede crear sin problemas. Sin embargo, para poder decirte donde está el error deberías de colocar el script completo de tu bd's, o al menos las sentencias de creación de todas las tablas que intervienen. Por lo pronto presta atención a lo siguiente:

1. El orden de los factores, SI ALTERA EL PRODUCTO. ¿qué significa esto? que primero tienes que definir todas las tablas QUE NO TIENEN FK y después aquellas a las que hacen referencia, esto quiere decir que antes de que ejecutes este script debes asegurarte que ya existan las siguientes tablas:

Código:
`CBTis168`.`Maestros_Ingles`
`CBTis168`.`Maestros_Fisica`
`CBTis168`.`Maestros_TICS_POAO_CTSYV_PDT`
`CBTis168`.`Maestros_Calculo_Integral`
`CBTis168`.`Maestros_Biologia_METP_AYFS`
`CBTis168`.`Maestros_AHYSBYH`
2. Verifica que los tipos de datos entre los campos que estás tratando de relacionar SEAN DEL MISMO TIPO, de lo contrario no podrás definir la FK.

3. Si el mensaje de error no te especifica sobre qué FK en particular está el error, puedes hacerlo por partes, es decir, primero CREA la tabla sin ninguna FK y en un segundo paso vé agregando CADA UNA DE LAS FK por separado, con ALTER-TABLE, de esta manera pude resultar más sencillo saber en qué parte está el problema.

Saludos
Leo.
  #3 (permalink)  
Antiguo 07/09/2015, 08:27
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, 5 meses
Puntos: 2658
Respuesta: Mysql error1215

Cita:
Al crear la conecion para despues hacer los registros me aparece este error
Finalmente, un detalle: Si las tablas y sus FK se crean correctamente, pero el problema se da al intentar insertar un registro, debes tener en cuenta que:
1) Las tablas referidas (a donde apunta la FK) debe tener los datos a que se hacen referencia ANTES de ser usados en el INSERT como FK.
2) No deben existir dependencias circulares. Esto significa que si B tiene la FK de A, A no puede tener una FK de B, ni tampoco tenerla en forma transitiva (B apunta a A, A apunta a C y C apunta a B), porque son condiciones de cumplimiento imposible.
3) No puedes insertar en una FK un valor que no exista previamente en su tabla origen, y no puede ser NULL, ya que al apuntar a una PK no puede existir una que sea NULL. La sola excepción es que FK apunte a un campo UNIQUE, y exista un registro con ese campo NULL.
__________________
¿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: registro, sql, update
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 05:29.