2012-09-23 121 views
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值。但问题是,还有周围的截断的错误:mysql截断错误

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' 

我在网上搜索来检查语法截形,但我想我有这个正确写入。

对此提出建议?谢谢。

回答

1

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

set v_loop_count := p_loop_count