Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2009, 11:15
mogoxd
 
Fecha de Ingreso: diciembre-2007
Mensajes: 77
Antigüedad: 16 años, 4 meses
Puntos: 3
Exclamación Problema Foreign Key Nula

Hola a todos, os explico.

Tengo esta tabla:
Código HTML:
CREATE TABLE `partido` (
 `id` int(5) NOT NULL auto_increment,
 `temporada_id` int(5) NOT NULL,
 `competicion_id` int(5) NOT NULL,
 `local_id` int(5) NOT NULL,
 `visitante_id` int(5) default NULL,
 `fecha` varchar(10) collate utf8_unicode_ci NOT NULL,
 PRIMARY KEY  (`id`),
 UNIQUE KEY `local_id` (`local_id`,`visitante_id`,`fecha`),
 KEY `temporada_id` (`temporada_id`),
 KEY `competicion_id` (`competicion_id`),
 KEY `visitante_id` (`visitante_id`),
 CONSTRAINT `partido_ibfk_1` FOREIGN KEY (`temporada_id`) REFERENCES `temporada` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `partido_ibfk_2` FOREIGN KEY (`competicion_id`) REFERENCES `competicion` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `partido_ibfk_3` FOREIGN KEY (`local_id`) REFERENCES `equipo` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `partido_ibfk_4` FOREIGN KEY (`visitante_id`) REFERENCES `equipo` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

Y el problema lo tengo al ejecutar esta consulta:

Código HTML:
INSERT INTO partido VALUES (
	'',
	'$temporada',
	'$competicion',
	'$equipo',
	'',
	'$fecha'
)
El valor de visitante_id deberia poder ser nulo. Si agrego una linea mediante el INSERT de phpmyadmin no me tira ningun error, pero al hacer insert mediante SQL me lanza el siguiente error:

Código HTML:
#1452 - Cannot add or update a child row: a foreign key constraint fails (`playascs_playas/partido`, CONSTRAINT `partido_ibfk_4` FOREIGN KEY (`visitante_id`) REFERENCES `equipo` (`id`) ON DELETE CASCADE ON UPDATE CASCADE)
He probado a poner NULL en el valor del insert, pero el resultado es el mismo.
Alguien me puede ayudar. Por favor, es urgente.