gpt4 book ai didi

mysql - 在新表中插入多行的触发器

转载 作者:行者123 更新时间:2023-12-05 05:50:15 25 4
gpt4 key购买 nike

我想弄清楚如何创建一个触发器来在另一个表中插入多行,而不仅仅是一次。

我有 4 个表 --> Student、Class、Assignment、ClassAssignment

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”的每个学生,都将学生 ID 和作业 ID(均来自该插入行)插入到另一个表 StudentAssignmentSolution 中。

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);

我不知道该怎么做,是如何使触发器在另一个表中插入多行,而不是一次。

最佳答案

INSERT INTO ... 语句中使用 SELECT 而不是 VALUES,从表 Student 所有具有该特定 classID 的学生:

INSERT INTO StudentAssignmentSolution(studentID, assignmentID) 
SELECT s.ID, NEW.assignmentID
FROM Student s
WHERE s.classID = NEW.classID

关于mysql - 在新表中插入多行的触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70545313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com