0
DELIMITER //
DROP TRIGGER insert_orderinward_trig; //
CREATE TRIGGER insert_orderinward_trig AFTER INSERT ON tblm_tlmngorderinward FOR EACH ROW
BEGIN
call temp_proc(NEW.itemcode);
END; //
我写的程序,mysql的触发不行
DELIMITER //
DROP PROCEDURE temp_proc; //
CREATE PROCEDURE temp_proc(IN code VARCHAR(80))
BEGIN
DECLARE inwardstock,issuestock,updatestock DECIMAL(15,0) DEFAULT 0;
SET inwardstock = (SELECT SUM(stock) FROM tblm_tlmngorderinward WHERE itemcode = code);
IF(@inwardstock > 0) THEN
SET updatestock =inwardstock;
END IF;
SET issuestock = (SELECT SUM(stock) FROM tblt_tlmngissueitem WHERE itemcode = code);
IF(@issuestock > 0) THEN
SET updatestock = @[email protected] ;
END IF;
UPDATE tblm_tlmngitem SET stock=updatestock WHERE itemcode=code;
END; //
DELIMITER ;
我INSERT触发器做工精细,当我手动插入记录。但是当我在java中使用preparestatement插入记录时它无法工作。
是你我可以到完成只用procedure.But我在tblm_tlmngorderinward表中的许多领域我的工作,所以是feasi可以通过所有的域作为程序参数吗? – chetan 2011-04-16 10:22:26
是的 - 这很好 – 2011-04-16 12:38:03
感谢您的回答 – chetan 2011-04-18 06:34:58