多个WHEN条件?

时间:2013-11-09 12:26:07

标签: sql database sqlite triggers

CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
  WHEN old.field <> 1
    BEGIN
      UPDATE myTable...
    END;

如何添加多个WHEN条件?像

CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
  WHEN old.field <> 1
    BEGIN
      UPDATE myTable...
    END;
  ELSE WHEN old.field = 1
    BEGIN
      UPDATE myTable...
    END;      

我是否必须为它创建两个单独的触发器?是不是有更快的方式?

1 个答案:

答案 0 :(得分:2)

你可以这样做:

CREATE TRIGGER myTrigger AFTER UPDATE ON myTable
BEGIN
    UPDATE myTable... WHERE old.field <> 1 AND ... 
    UPDATE myTable... WHERE old.field = 1 AND ...
END;      

虽然我一般不会建议,因为优化器可能无法始终生成智能计划。