SQLite,在插入另一个 table 后自动更新 table 中的字段

SQLite, Automatically update field in table after insert in another table

我是数据库的新手,所以如果这个问题是关于一些简单明了但我无法独自解决的问题,我提前道歉。 基本上,我正在尝试执行以下操作(出于教育目的,与任何“严重”无关):

我有一个 table courses,每门课程都有

那我有table个people,每个都有

(假设每人只能报名一个 课程)。 course_id 是与课程 ID 相关的外键。

我想知道的是,每当我在 people 中插入一行时,如何自动更新参加课程的人数(增加参加特定课程的人数已注册)。

我读到我可以使用触发器来做到这一点,但我并没有真正理解如何做。无论如何,我正在从 javascript 查询数据库,所以基本上我只想传递 INSERT 查询。

您需要一个 AFTER INSERT 触发器:

CREATE TRIGGER trg_people_ins AFTER INSERT ON people
BEGIN
  UPDATE courses 
  SET total = COALESCE(total, 0) + 1 
  WHERE id = NEW.course_id;
END;

total 更改为 courses 中列的实际名称。
如果total的默认值是0那么你不需要COALESCE(),所以改为:

SET total = total + 1