读书人

mysql存储过程中truncate失效,该如何解

发布时间: 2012-03-28 15:40:03 作者: rapoo

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 ;


以上是我的存储过程,但每次调用时stat_power表并没有清空,而是在原来的表里增加了这次执行结果的内容
请问应该怎么解决?

[解决办法]
有无提示

truncate table stat_power;
select * from stat_power;
什么结果
[解决办法]
数据应该是清除了。估计是你后面的程序问题。
建议给出你的测试用例,想办法让别人可以在自己的机器上模拟你的问题。


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

读书人网 >Mysql

热点推荐