由于项目原因,不得不编写一个sqlite累加的触发器,但是sqlite所支持的触发器语法和MysqL已经oracle等有非常大的不同。在参考了诸多资料之后,终于写出来了。
sqlite触发器的官方文档:http://www.sqlite.org/lang_createtrigger.html
国外关于编写sqlite触发器的教程:http://sqlite.awardspace.info/syntax/sqlitepg11.htm
Stephen Liu博客园关于sqlite的教程:http://www.cnblogs.com/stephen-liu74/archive/2012/01/22/2328757.html,函数库:http://www.cnblogs.com/stephen-liu74/archive/2012/01/13/2322027.html
代码如下:
CREATE TRIGGER insert_cux_item_onhand before insert on CUX_INV_LOC_SHEET_DETAILS FOR EACH ROW when ((select CUX_INV_LOC_SHEET_DETAILS.SHT_D_STATUS from CUX_INV_LOC_SHEET_DETAILS ) = '1') begin insert or replace into CUX_LOC_ITEM_ONHAND(ITEM_ID,LOC_ID,ITEM_L_CODE,QUANTITY) values (new.ITEM_ID,new.LOC_ID,new.ITEM_L_CODE,new.QUANTITY + ifnull((select QUANTITY from CUX_LOC_ITEM_ONHAND where LOC_ID = new.LOC_ID and ITEM_L_CODE= new.ITEM_L_CODE),0)); end;