0
Create procedure a06_generate_data( p_loop_count int, 
                                    p_min int, 
                                    p_max int, 
                                    p_status char(1)) 
begin

declare v_max int;
declare v_min int;
declare v_loop_count int;

set v_max := p_max;
set v_min := p_min;
set v_loop_count := p_loop_count

-- clear the results table for each run
truncate table p_testbed.a06_rndData;
Repeat
   insert into p_testbed.a06_rndData (col_value)
        values (floor(v_min + rand()*(v_max – v_min)));
    set v_loop_count := v_loop_count – 1;
until v_loop_count <= 0 End Repeat;

select col_value p_testbed.a06_rndData ;


end; #

此过程是插入从 p_min 到 p_max 的随机值,总共有 p_loop_count 个值。但问题是,截断有一个错误:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'truncate table         p_testbed.a06_rndData;
    Repeat
       insert into p_testbed.a0' 

我已经在网上搜索以检查截断的语法,但我认为我写得正确。

建议?谢谢。

4

1 回答 1

1

问题不在于TRUNCATE TABLE,前面的行缺少分号:

set v_loop_count := p_loop_count
于 2012-09-23T23:16:02.400 回答