SQLite数据库中的SQL错误不完整

时间:2015-03-14 17:55:58

标签: sqlite triggers

我是一个初始化DB(SQLite 3.8.2)的SQLite脚本,创建如下:

sqlite3 -init database_creation.sql sample.db

脚本文件如下:

 // Some `CREATE TABLE` statements

 CREATE TRIGGER update_totalprice AFTER UPDATE
   OF price, amount, boxes ON product
   BEGIN UPDATE product SET totalprice = price * boxes * amount
   WHERE idproduct = NEW.idproduct; END

 // Some `INSERT` statements.

但它会产生以下错误:

Error: incomplete SQL: CREATE TRIGGER update_totalprice AFTER UPDATE
   OF price, amount, boxes ON product
   BEGIN UPDATE product SET totalprice = price * boxes * amount
   WHERE idproduct = NEW.idproduct; END

// The rest of the file to the end.

我确定存在语法错误,也没有创建表格,也没有插入测试行,因为如果我评论CREATE TRIGGER语句一切正常,我找不到语法错误。

1 个答案:

答案 0 :(得分:1)

好的,问题很简单。我虽然“END”关键字足以标记CREATE TRIGGER语句的结尾(更了解UPDATE语句已经有了自己的';'),但在END之后,需要另一个;

 CREATE TRIGGER update_totalprice
 AFTER UPDATE OF price, amount, boxes ON product
 BEGIN
   UPDATE product SET totalprice = price * boxes * amount
   WHERE idproduct = NEW.idproduct;
 END;