Trigger que inserta múltiples filas en una nueva tabla
Estoy tratando de averiguar cómo puedo crear un disparador que inserte múltiples filas en otra tabla, no solo una vez.
Tengo 4 tablas –> Estudiante, Clase, Tarea, AsignacionClase
Estudiante:
ID INT, CLASSID (CLAVE EXTERNA, referencia a clase(ID))
Clase:
ID INT
Tarea:
ID
AsignacionClase (es una tabla puente) de Clase y Tarea.
Deseo que cada vez que se inserte una nueva fila en ‘AsignacionClase’, PARA CADA ESTUDIANTE que tenga este ‘ClassID’, se inserte en otra tabla llamada SolucionAsignacionEstudiante, el studentID y el assignmentID (ambos de esta fila insertada).
create trigger nuevaAsignacionClase after insert on asignacionclase
for each row
insert into SolucionAsignacionEstudiante(studentID, assignmentID)
values((select id from estudiante where classID = new.classID), new.assignmentID);
Lo que no sé cómo hacer, es cómo hacer que el desencadenador inserte múltiples filas en otra tabla, no solo una vez.
davy.ai
Para lograr la inserción de múltiples filas en otra tabla desde el disparador, puedes utilizar un bucle para iterar a través de todos los estudiantes con el mismo ClassID e insertar su respectivo studentID y assignmentID en la tabla StudentAssignmentSolution. Aquí tienes un ejemplo:
Este disparador recorrerá a través de todos los estudiantes con el mismo ClassID que la fila recién insertada en ClassAssignment y insertará su respectivo studentID y assignmentID en la tabla StudentAssignmentSolution.