mysql存储过程中truncate失效
SQL code
delimiter // CREATE PROCEDURE sp_power() begin declare l_id bigint(20); declare l_power smallint(6); declare no_more_device int default 0; declare power_csr CURSOR FOR SELECT dev_id,power_stat FROM device; DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_device=1; SET no_more_device = 0; create table if not exists stat_power(dev_id bigint(20),dev_power smallint(6)); truncate table stat_power; open power_csr; dev_loop:repeat fetch power_csr into l_id,l_power; if no_more_device then leave dev_loop; end if; if l_power < 11 then insert into stat_power values(l_id,l_power); end if; until no_more_device end repeat dev_loop; close power_csr; set no_more_device = 0; end // delimiter ;
1
delimiter// CREATE PROCEDURE sp_power() begin declare l_id bigint(20); declare l_power smallint(6); declare no_more_device int default 0; declare power_csr CURSOR FOR SELECT dev_id,power_stat FROM device; DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_device=1; SET no_more_device = 0; create table if not exists stat_power(dev_id bigint(20),dev_power smallint(6)); truncate table stat_power; open power_csr; dev_loop:repeat fetch power_csr into l_id,l_power; if no_more_device then leave dev_loop; end if; if l_power < 11 then insert into stat_power values(l_id,l_power); end if; until no_more_device end repeat dev_loop; close power_csr; set no_more_device = 0; end // delimiter ;
欢迎大家阅读《mysql存储过程中truncate失效,该如何解决》,跪求各位点评,by 搞代码
以上是我的存储过程,但每次调用时stat_power表并没有清空,而是在原来的表里增加了这次执行结果的内容
请问应该怎么解决?
------解决方案--------------------
有无提示
truncate table stat_power;
select * from stat_power;
什么结果
------解决方案--------------------
数据应该是清除了。估计是你后面的程序问题。
建议给出你的测试用例,想办法让别人可以在自己的机器上模拟你的问题。
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
微信 赏一包辣条吧~
支付宝 赏一听可乐吧~