当前位置:  开发笔记 > 编程语言 > 正文

MySql存储过程的参数与影响列的名称相同,是否可能?

如何解决《MySql存储过程的参数与影响列的名称相同,是否可能?》经验,为你挑选了1个好方法。

我有一个包含两列的序列表,名称,值,我有一个存储过程,用于递增提供名称的值

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 ;

请注意,该参数称为"名称".

是否有任何方法可以使用与受影响的表的列名相同的参数?

注意:我对更改参数的名称,甚至列的名称都不感兴趣,只是为了知道它是否可能,以及如何.



1> Matt Rogish..:

是的,通过别名来限制表列的范围.

例如

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

call foo( 123 )

返回用户id = 123

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有