我是一个初始化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
语句一切正常,我找不到语法错误。
答案 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;