Создать представление с колонкой num_rows - MySQL
Мне нужно создать представление, которое имеет столбец с именем row_num, в который будет вставлен номер строки, так же, как автоматическое увеличение в обычной таблице.
Допустим, у меня есть эта нормальная таблица:
| country | name | age | price |
--------------------------------
| US | john | 22 | 20 |
| France | Anne | 10 | 15 |
| Sweden | Alex | 49 | 10 |
И так далее...
Представление, которое я хочу создать:
| country | name | price | row_num |
------------------------------------
| US | john | 20 | 1 |
| France | Anne | 10 | 2 |
| Sweden | Alex | 5 | 3 |
И так далее...
Я могу сгенерировать row_num с помощью одного выбора:
SELECT @i:=@i+1 AS row_num, testing.country, testing.name, testing.price
FROM testing testing,(SELECT @i:=0) derivedTable
order by name
Но моя проблема состоит в том, чтобы объединить запрос выше с запросом, создающим представление. Это комбинированный запрос, который я пытаюсь:
CREATE OR REPLACE view vwx (country, name, price, num_row) AS SELECT mytable.country, mytable.name, mytable.price, @i:=@i+1 AS row_number
FROM testing testing,(SELECT @i:=0) derivedTable
order by name;
Я получаю следующую ошибку: # 1351 - SELECT View содержит переменную или параметр
Я знаю, что не могу использовать выбор внутри выбора с представлениями, но я не вижу другого способа сделать это представление таким, как я хочу, но я уверен, что есть способ сделать это, но я просто не знаю как. Вероятно, с функциями или процедурами, но я действительно новичок в них, поэтому мне неудобно создавать функции или процедуры в mysql.
Надеюсь, я дал понять, в противном случае я более чем рад объяснить себя более подробно.