2009-04-03 4 views
7

私は、2つの列、名前、値のシーケンステーブルを持っている、私は名前パラメータは、「名前」と呼ばれるMySqlストアドプロシージャのパラメータは、影響を受けるカラムと同じ名前で可能ですか?

DROP PROCEDURE IF EXISTS p_generate_sequence; 
delimiter | 
CREATE PROCEDURE p_generate_sequence (name VARCHAR(30)) 
BEGIN 
    START TRANSACTION; 
    -- Variable "name" equal to column "name", how to reference? 
    UPDATE sequences_table SET value = value + 1 WHERE name = name; 
    SELECT value FROM sequences_table WHERE name = name; 
    COMMIT; 
END | 
delimiter ; 

注提供された値をインクリメントするためのストアドプロシージャを持っています。

影響を受けるテーブルの列名と同じ名前のパラメータを使用する方法はありますか?

注:私はパラメータの名前やカラムの名前を変更することには興味がありません。単にそれが可能かどうかを知るためです。

+0

多分これは役立つ - http://forge.mysql.com/tools/tool.php?id=13 – madcolor

+0

私は非常に簡単...ビットダム感じます、ありがとう、マット –

答えて

9

はい、エイリアスでテーブルの列の範囲を指定します。

delimiter // 
create procedure foo(id int) 
begin 
select * from users u where u.id = id; 
end 
// 

call foo(123) 

返すユーザID = 123

関連する問題