rodrigo.
prueba esto:
Código sql:
Ver originalSELECT INTO nino id_familia,COUNT(id_familia) AS numhijos FROM familia_x_hijos WHERE id_nino=OLD.id_nino;
IF nino.numhijos = 0 THEN
SELECT INTO padres rut_padre,rut_madre FROM familia WHERE id_familia=nino.id_familia;
DELETE FROM familia WHERE id_familia=nino.id_familia;
DELETE FROM padre WHERE rut_padre=padres.rut_padre;
DELETE FROM madre WHERE rut_madre=padres.rut_madre;
Sin embargo, lo que interesa es que entiendas bien que estas tratando de hacer y por que se dan los errores. La sentencia que te pasé en un ppio, fue error mio, por mirar mal la estructura de tus tablas en un post anterior, lo importante es saber la jerarquia de las tablas y cual debe ser el orden de borrado que se debe llevar a cabo.
Fijate que me valgo del id_familia para obtener el padre y madre de ese niño. padres es una nueva variable tipo record que debes declarar. Revisa muy bien las relaciones que existen entre las tablas y establece un orden de borrado.
Recuerda que los valores new. y old. se dan unicamente, cuando son los campos que intervienen en la tabla, para este caso el id_nino. Los que no estén involucrados, deben ser hallados basados en consultas.
Cuentanos como te va.