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

Error en Insert

Estas en el tema de Error en Insert en el foro de Mysql en Foros del Web. Hola amigos¡¡ tengo un problema con un query, al momento de que quiero insertar datos me manda un error: tengo un query con el que ...
  #1 (permalink)  
Antiguo 29/11/2011, 19:04
Avatar de halexander  
Fecha de Ingreso: abril-2010
Ubicación: En algun lugar de mexico xD
Mensajes: 59
Antigüedad: 14 años
Puntos: 0
Pregunta Error en Insert

Hola amigos¡¡ tengo un problema con un query, al momento de que quiero insertar datos me manda un error: tengo un query con el que cree la tabla que es el siguiente:

Código MySQL:
Ver original
  1. CREATE TABLE EMPLEADO
  2.     (Nombre VARCHAR(50)     NOT NULL,
  3.      Apellido1  VARCHAR(50),
  4.      Apellido2  VARCHAR(50)     NOT NULL,
  5.      Dni        CHAR(9)     NOT NULL,
  6.      FechaNac   DATE,
  7.      Direccion  VARCHAR(50),
  8.      Sexo       CHAR,
  9.      Sueldo     DECIMAL(10,2),
  10.      SuperDni   CHAR(9),
  11.      Dno        INT         NOT NULL,
  12.     PRIMARY KEY(Dni),
  13.     FOREIGN KEY(SuperDni) REFERENCES EMPLEADO(Dni) );

y lo que quiero hacer es insertar datos de la siguiente manera:

Código MySQL:
Ver original
  1. INSERT INTO empleado
  2. VALUES ('José','Pérez','Pérez','123456789','1965-09-01','Eloy I,98','H','30000','333445555','5');
  3.  
  4. INSERT INTO empleado
  5. VALUES ('Alberto','Campos','Sastre','333445555','1955-12-08','Avda. Rios. 9','H','40000','888665555','5');
  6.  
  7. INSERT INTO empleado
  8. VALUES ('Alicia','Jimenez','Celaya','999887777','1968-05-12','Gran Via. 38','M','25000','987654321','4');
  9.  
  10. INSERT INTO empleado
  11. VALUES ('Juana','Sainz','Oreja','987654321','1941-06-20','Cerquillas, 67','M','43000','888665555','4');
  12.  
  13. INSERT INTO empleado
  14. VALUES ('Fernado','Ojeda','Ordoñez','666884444','1962-09-15','Portillo. s/n','H','38000','333445555','5');
  15.  
  16. INSERT INTO empleado
  17. VALUES ('Aurora','Oliva','Avezuela','453453453','1972-07-31','Anton, 6','M','25000','333445555','5');
  18.  
  19. INSERT INTO empleado
  20. VALUES ('Luis','Pajares','Morera','987987987','1969-03-29','Enebros, 90','H','25000','987654321','4');
  21.  
  22. INSERT INTO empleado
  23. VALUES ('Eduardo','Ochoa','Paredes','888665555','1937-11-10','Las peñas, 1','H','55000','NULL','1');

pero al momento de correrlo me manda el siguiente error :S

[SQL] INSERT INTO empleado
VALUES ('José','Pérez','Pérez','123456789','1965-09-01','Eloy I,98','H','30000','333445555','5');
[Err] 1452 - Cannot add or update a child row: a foreign key constraint fails (`empresa`.`empleado`, CONSTRAINT `empleado_ibfk_1` FOREIGN KEY (`SuperDni`) REFERENCES `empleado` (`Dni`))

alguien sabe que es lo que hago mal?? segun estuve investigando y dicen que no tengo datos en la tabla padre pero en si tengo 6 tablas y en las 6 he querido insertar datos de la misma forma y en todas me lanza el mismo error :S

De antemano muchisimas gracias¡
  #2 (permalink)  
Antiguo 29/11/2011, 19:07
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: Error en Insert

Le has definido una dependencia circular a esa tabla.
Insertar un valor en Empleado.Dni depende de que exista previamente ese valor en Empleado.Dni... Eso es racionalmente imposible.
¿Qué hace esa FK referida a la misma tabla?

Quítale eso. No tiene razón de existir.

Si lo que pretendes es establecer una dependencia de Jefe -> Empleado, el SuperDni no debe ser un NOT NULL, sino un 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)
  #3 (permalink)  
Antiguo 29/11/2011, 19:39
Avatar de halexander  
Fecha de Ingreso: abril-2010
Ubicación: En algun lugar de mexico xD
Mensajes: 59
Antigüedad: 14 años
Puntos: 0
Respuesta: Error en Insert

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Le has definido una dependencia circular a esa tabla.
Insertar un valor en Empleado.Dni depende de que exista previamente ese valor en Empleado.Dni... Eso es racionalmente imposible.
¿Qué hace esa FK referida a la misma tabla?

Quítale eso. No tiene razón de existir.

Si lo que pretendes es establecer una dependencia de Jefe -> Empleado, el SuperDni no debe ser un NOT NULL, sino un NULL.
Muchas Gracias bro!! en realidad es una BD que dejo el profe y asi mando el archivo, pero le quite la llave foranea como mencionas y ya todo jalo sin problema, eres grande¡¡¡ Muchas gracias =)

Etiquetas: bd, error#1452-cannot, sql
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:56.