Параметр хранимой процедуры MySql, имя которого совпадает с именем столбца, влияющего на него, возможно ли это? - PullRequest
8 голосов
/ 03 апреля 2009

У меня есть таблица последовательности с двумя столбцами, именем, значением, и у меня есть хранимая процедура для приращения значения при условии имени

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 Ответ

10 голосов
/ 03 апреля 2009

Да, добавьте псевдоним в столбец таблицы.

, например

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

call foo( 123 )

возвращает идентификатор пользователя = 123

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...