SQLite触发更新同一行而不知道id?

时间:2016-07-08 19:34:27

标签: sql sqlite sql-update database-trigger

我怎样才能在SQLite中使用这样的东西?我希望它只适用于已更新的行,因为许多其他行可能共享相同的名字。

CREATE TRIGGER update_directory_fName UPDATE OF fName ON directory 
  BEGIN
    UPDATE directory SET wholeName = (new.fName || lName) WHERE old.id = new.id;
  END;

我知道ID尚未更新,但我无法弄清楚如何让它知道我正在谈论哪一行。我也尝试过将id引用到new.id,但它没有帮助。我更改fName时的结果是wholeName根本没有变化。它既不会抛出任何错误,所以我认为它不知道要更新什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我相信您在不存在的Id字段中添加了别名,因此:


CREATE TRIGGER update_directory_fName UPDATE OF fName ON directory 
  BEGIN
    UPDATE directory SET wholeName = (new.fName || lName) WHERE Id = new.id;
  END;