0

現在の学生がテーブルにいるかどうかを示す手順を書いています。テストした後、いくつかのエラーが発生しています...

Create procedure stuID(p_id int)    
begin   
    declare v_msg varchar(100);
    declare count_id int;

    select count(*) into count_id from students where id = p_id; 


    If null then
        set v_msg := 'null';
    Elseif count_cl_id = 1 then
        set v_msg := 1;
    Elseif count_cl_id = 0 then
        set v_msg := 0;
    End if;

    Select v_msg;
end;

そこで、これらをテストする別の手順を作成しました...

作成手順 test_stuID () begin

    -- Test with null
    call stuID(null);

    -- Test with invalid ID
    call stuID('0');

    -- Test with String
    call stuID( 'false' );

    -- Test with true ID
    call stuID('25');

end;

#

2 つの問題:

1) null の場合、v_msg が「null」として返されない

2) 実際の有効な ID 25 は返されません。

私は何を間違っていますか??? 前もって感謝します。

4

1 に答える 1

0

2 つのエラー:

1)If nullに置き換える必要がありますif count_id is null

2)はパラメータ名ですが、count_cl_id比較に使用しています。count_id

修正を加えて自分のシステムでテストしたところ、問題なく動作しています。

于 2012-09-19T02:14:23.047 に答える