本文介绍了什么是这个mysql触发错误!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 CREATE TRIGGER tr之前更新 ON batch_dat_trans FOR 每行 BEGIN DECLARE @ result_position int ; DECLARE @ result_all int ; DECLARE @ proud double ; DECLARE @ date1 DATE ; DECLARE @ cust varchar ( 100 ); SET @ result_position = 1 ; DELETE FROM temp; SELECT COUNT( @ Batch_Date ) INTO @ result_all FROM batch_dat_trans WHERE Batch_date BETWEEN DATE_SUB(NOW(),INTERVAL 45 DAY) AND NOW(); lab:LOOP SELECT Batch_Date,Customer_Code,Production_Qty INTO @ date1 , @ cust , @ proud FROM batch_dat_trans WHERE Batch_date BETWEEN DATE_SUB(NOW(),INTERVAL 25 DAY) AND NOW()LIMIT @ result_position , 1 ; INSERT INTO temp(Batch_Date,Customer_Code,Production_Qty) VALUES ( @ date1 , @ cust , @proud ); SET @ result_position = @ result_position + 1 ; 如果 @ result_position > @ result_all 然后 LEAVE lab; end if ; END LOOP; END 解决方案 你需要指定分隔符!请参阅此处: http://www.freemindsystems.com/blog/post/mysql-triggers -a-practical-example [ ^ ] CREATE TRIGGER tr BEFORE UPDATE ON batch_dat_trans FOR EACH ROWBEGIN DECLARE @result_position int; DECLARE @result_all int; DECLARE @proud double; DECLARE @date1 DATE; DECLARE @cust varchar(100); SET @result_position = 1; DELETE FROM temp; SELECT COUNT(@Batch_Date) INTO @result_all FROM batch_dat_trans WHERE Batch_date BETWEEN DATE_SUB(NOW(), INTERVAL 45 DAY) AND NOW() ; lab: LOOP SELECT Batch_Date,Customer_Code,Production_Qty INTO @date1,@cust,@proud FROM batch_dat_trans WHERE Batch_date BETWEEN DATE_SUB(NOW(), INTERVAL 25 DAY) AND NOW() LIMIT @result_position,1 ; INSERT INTO temp (Batch_Date,Customer_Code,Production_Qty) VALUES(@date1,@cust,@proud); SET @result_position = @result_position + 1; if @result_position > @result_all then LEAVE lab; end if; END LOOP; END 解决方案 You need to specify delimiter! See here: http://www.freemindsystems.com/blog/post/mysql-triggers-a-practical-example[^] 这篇关于什么是这个mysql触发错误!!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
09-17 18:02