Последовательная нумерация строк относительно указанного ID

Ищу в интернете уже дня три функцию для последовательной нумерации строк относительно указанного ID но пока только нашёл либо реализацию для MySQL ENGINE=MYISAM а мне нужно для MySQL ENGINE=InnoDB

Суть функции в следующем, производить последовательную нумерацию начиная с 1 для указанного ID..

+----+---------+-----------+------------+-----+
| id | surname | firstname | patronymic | num |
+----+---------+-----------+------------+-----+
|  1 | Иванов  | Иван      | Иванович   |  1  |
|  1 | Иванов  | Иван      | Иванович   |  2  |
|  1 | Иванов  | Иван      | Иванович   |  3  |
|  2 | Петров  | Петр      | Петрович   |  1  |
|  2 | Петров  | Петр      | Петрович   |  2  |
|  2 | Петров  | Петр      | Петрович   |  3  |
+----+---------+-----------+------------+-----+
Должно получаться что-то вроде выше приведённой таблице…

Привожу более понятное объяснение что требуется сделать.
При добавлении нового поля, необходимо, чтобы в указанный столбец, проставлялась нумерация относительно привязанного ID по порядку (то есть 1,2,3 etc).