有没有办法在同一个表上创建多个DELETE触发器?

时间:2013-12-12 03:26:54

标签: python triggers sqlite

说我有一张学生表,他们的班级以及他们的总分等级平均值:

CREATE TABLE [records](
    student TEXT NOT NULL,
    class TEXT DEFAULT '',             
    gpa REAL DEFAULT 0.0);

在此表中,学生可以放弃课程......

DELETE FROM records WHERE student=? AND class=?

......或辍学:

DELETE FROM records WHERE student=?

每个事件都应激活不同的触发器。如何在SQLite中编写这些触发器?因为...

CREATE TRIGGER [drop_a_class] AFTER DELETE ON records
    WHEN (DELETE FROM records WHERE student=old.student AND class=old.class)
BEGIN
  ...
END;

......不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:0)

documentation说:

  

SQLite仅支持FOR EACH ROW触发器,而不支持FOR EACH STATEMENT触发器。

您在WHEN子句中的信息只是要删除的记录的内容。

您无法在触发器中区分这些情况。 您必须在您的应用程序中实现此功能。