Znalazłem na to rozwiązanie:
Najpierw utwórz funkcję:
delimiter //
CREATE FUNCTION `func_inc_var_session`() RETURNS int
NO SQL
NOT DETERMINISTIC
begin
SET @var := @var + 1;
return @var;
end
//
delimiter ;
Następnie ustaw @var na liczbę, od której chcesz zacząć.W tym przypadku zero.
Następnie utwórz widok w następujący sposób:
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;
Sztuczka polega na tym, że możesz zobaczyć NULL w kolumnie licznika. Jeśli tak się stanie, ustaw ponownie @var na swój numer, a następnie ponownie wykonaj WYBIERZ *, a zobaczysz prawidłowo wypełnioną kolumnę licznika.