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 に答える