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

Mysql error 1452 : Cannot add or update a child row: a foreign key constraint fails

Estas en el tema de Mysql error 1452 : Cannot add or update a child row: a foreign key constraint fails en el foro de Mysql en Foros del Web. Buenas tengo lo siguente TABLA1 Indices : codigo , proveedor codigo : varchar(15) proveedor : int(4) TABLA2 Indices : codigo , proveedor codigo : varchar(15) ...
  #1 (permalink)  
Antiguo 23/04/2010, 09:54
 
Fecha de Ingreso: enero-2004
Ubicación: here I Am
Mensajes: 437
Antigüedad: 20 años, 10 meses
Puntos: 1
Mysql error 1452 : Cannot add or update a child row: a foreign key constraint fails

Buenas tengo lo siguente

TABLA1
Indices : codigo , proveedor
codigo : varchar(15)
proveedor : int(4)

TABLA2
Indices : codigo , proveedor
codigo : varchar(15)
proveedor : int(4)

Y intento poner una clave foranea con este comando

Código:
ALTER TABLE tabla1
ADD CONSTRAINT `FK_tabla1`
FOREIGN KEY `FK_tabla1` (`codigo`, `proveedor`)
    REFERENCES `tabla2` (`codigo`, `proveedor`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION;

Y todo el rato recibo el error

Código:
Cannot add or update a child row: a foreign key constraint fails
 (`XXXXXXXXX/#sql-810_70491`, CONSTRAINT `fk_tabla1`
 FOREIGN KEY (`codigo`, `proveedor`)
  REFERENCES `tabla2`(`codigo`, `proveedor`)
   ON DELETE NO ACTION ON UPDATE

No se que hacer...

Gracias radge
__________________
Nuevo foro sobr el mundo del motor - Renault foro
http://www.renaultforo.com
  #2 (permalink)  
Antiguo 23/04/2010, 10:33
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Mysql error 1452 : Cannot add or update a child row: a foreign key constra

Mira a ver si es que tienes en la tabla1 algún registro con codigo y proveedor (ambos) que no existan en tabla2 en un mismo registro. Eso supondría un problema cuando exiges integridad.
Mira a ver
Una consulta como esta podría ayudarte a descubrirlo SELECT * FROM tabla1 t2 LEFT JOIN tabla2 t1 ON (t2.codigo = t1.codigo AND t2.proveedor = t1.proveedor) WHERE t1.proveedor IS NULL

No lo he probado.

Etiquetas: child, constraint, key, row, update, foreignkey
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 09:42.