我有一个包含两列的序列表,名称,值,我有一个存储过程,用于递增提供名称的值
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 ;
请注意,该参数称为"名称".
是否有任何方法可以使用与受影响的表的列名相同的参数?
注意:我对更改参数的名称,甚至列的名称都不感兴趣,只是为了知道它是否可能,以及如何.
是的,通过别名来限制表列的范围.
例如
delimiter // create procedure foo( id int ) begin select * from users u where u.id = id; end // call foo( 123 )
返回用户id = 123