什么是这个mysql触发错误!! [英] What's this mysql trigger error!!
本文介绍了什么是这个mysql触发错误!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
CREATE TRIGGER tr之前更新 ON batch_dat_trans FOR 每行
BEGIN
DECLARE @ result_position < span class =code-keyword> 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 ROW
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;
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触发错误!!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文