Encontrei uma solução para isso:
Primeiro crie uma função:
delimiter //
CREATE FUNCTION `func_inc_var_session`() RETURNS int
NO SQL
NOT DETERMINISTIC
begin
SET @var := @var + 1;
return @var;
end
//
delimiter ;
Em seguida, defina @var para o número com o qual você deseja começar. Neste caso, zero.
Em seguida, crie a visualização da seguinte forma:
CREATE OR REPLACE VIEW myview (place, name, hour, price, counter)
AS SELECT place, name, hour, price, func_inc_var_session()
FROM yourtable
WHERE input_conditions_here;
O truque aqui é que você pode ver NULL na coluna do contador. Se isso acontecer, defina @var novamente para o seu número e, em seguida, faça o SELECT * novamente e você verá a coluna do contador preenchida corretamente.