Código SQL:
Ver original
CREATE TABLE IF NOT EXISTS `tbl_alumnos_notas` ( `alumno` INT(11) NOT NULL, `idcurso` INT(11) NOT NULL, `asignatura` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL, `trimestre` tinyint(4) NOT NULL, `nota` VARCHAR(40) CHARACTER SET utf8 COLLATE utf8_spanish_ci NOT NULL DEFAULT '', PRIMARY KEY (`alumno`,`idcurso`,`asignatura`,`trimestre`,`nota`), KEY `tbl_alumnos_notas_fk_2` (`idcurso`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
El script recibe un número indeterminado de registros con estos 5 valores. Lo que quiero es detectar que los 4 primeros campos existan en la tabla para cada uno de los registros que llegan. Por ejemplo, si recibo (1, 2, 'Historia', 3, 9) es que el alumno 1, que pertenece al curso 2, en la asignatura Historia tiene una nota de 9 en el trimestre 3. Pues lo que quiero es comprobar si efectivamente existe en la tabla un registro con alumno = 1, idcurso = 2, asignatura = 'Historia' y trimestre = 3. Y eso para todos los registros que lleguen.
Si uso un UPDATE normal y hay registros que no existen en la tabla, la actualización no devuelve ningún código de error. Puedo usar mysql_affected_rows, pero no me dice qué registros son los que no existen.
¿Hay alguna forma de hacer esto sin hacer una consulta por cada registro que reciba?
Gracias.