Писать функцию не есть хорошо
.
Это надо читать все ID, и если есть промежуток в числовом ряде n! то пихать туда.
А нужно в принципе для красоты, а то ID меню идёт 1,2,3, и сразу 55.
Понятно, что auto_increment не будет искать свободное число в ряду, и пихнёт сразу последнее, хотя если ряд состоит 1,2,…45 и удаленные 46,47,48,49,50, то откуда он видит стоку 50, если её удалили.
Мануал не дал ответа, не очень владеем анг.