在新 table 中插入多行的触发器
Trigger that inserts multiple rows in a new table
我想弄清楚如何创建一个触发器来在另一个 table 中插入多行,而不是一次。
我有 4 个 table --> 学生,Class,作业,Class作业
Student:
ID INT, CLASSID (FOREIGN KEY, references class(ID))
Class:
ID INT,
Assignment:
ID
ClassAssignment (Is a bridge table) from Class And Assignment.
我想,每次在 'ClassAssignment' 中插入一个新行时,对于具有此 'ClassID' 的每个学生,插入另一个 table StudentAssignmentSolution,studentID 和 assignmentID (都来自这个插入的行)。
create trigger newClassAssignment after insert on classassignment
for each row
insert into StudentAssignmentSolution(studentID, assignmentID)
values((select id from student where classID = new.classID), new.assignmentID);
我不知道该怎么做,是如何让触发器在另一个 table 中插入多行,而不是一次。
在 INSERT INTO ...
语句中使用 SELECT
而不是 VALUES
,select 来自 table Student
的所有学生具体 classID
:
INSERT INTO StudentAssignmentSolution(studentID, assignmentID)
SELECT s.ID, NEW.assignmentID
FROM Student s
WHERE s.classID = NEW.classID
我想弄清楚如何创建一个触发器来在另一个 table 中插入多行,而不是一次。
我有 4 个 table --> 学生,Class,作业,Class作业
Student:
ID INT, CLASSID (FOREIGN KEY, references class(ID))
Class:
ID INT,
Assignment:
ID
ClassAssignment (Is a bridge table) from Class And Assignment.
我想,每次在 'ClassAssignment' 中插入一个新行时,对于具有此 'ClassID' 的每个学生,插入另一个 table StudentAssignmentSolution,studentID 和 assignmentID (都来自这个插入的行)。
create trigger newClassAssignment after insert on classassignment
for each row
insert into StudentAssignmentSolution(studentID, assignmentID)
values((select id from student where classID = new.classID), new.assignmentID);
我不知道该怎么做,是如何让触发器在另一个 table 中插入多行,而不是一次。
在 INSERT INTO ...
语句中使用 SELECT
而不是 VALUES
,select 来自 table Student
的所有学生具体 classID
:
INSERT INTO StudentAssignmentSolution(studentID, assignmentID)
SELECT s.ID, NEW.assignmentID
FROM Student s
WHERE s.classID = NEW.classID