我正在为 db-class.org 编写练习,我们必须编写一个触发器,使新学生自动像同年级的其他人一样被命名为“友好”。也就是说,在触发器运行后,对于与“Friendly”同年级的所有其他高中生 A,我们应该在 Likes 表中包含 ('Friendly', A)。
这是在以下数据集的sqlite 中完成的。现在我的触发器起作用了,但它只添加了一个“友好”喜欢的人,而不是所有人(具有相同等级的人)。
这是我的触发器:
CREATE Trigger Q1
After Insert on Highschooler
For Each Row
When New.Name = 'Friendly'
Begin
INSERT Into Likes Values (New.ID, (
SELECT Highschooler.ID FROM Highschooler
WHERE Highschooler.Grade = New.Grade));
End;
Run Code Online (Sandbox Code Playgroud)
我怀疑我的 INSERT 查询有问题,因为孤立地 SELECT 返回所有 ID。那么我如何确保它插入所有具有匹配成绩的 ID?