Search code examples
mysqlview

Creating a MySQL view with an auto-incrementing id column


I have a MySQL database from which a view is created. Is is possible to add an auto-incrementing id for each row in the view?

I tried

CREATE ALGORITHM=UNDEFINED DEFINER=`database_name`@`%` SQL SECURITY DEFINER VIEW `MyView` AS 
set @i = 0;
select  @i:=@i+1 as `id`
        ...

but that doesn't work in a View.


Solution

  • Sorry - you can't autoincrement in a VIEW (You could do this in a Stored Procedure though).

    From the MySQL Manual:

    A view definition is subject to the following restrictions: The SELECT statement cannot refer to system or user variables.