Удаляю строки из таблицы, напр. 4-ю и 5-ю. После чего, вставляю данные INSERT INTO `names`(`title_id`, `last_name`) VALUES (NULL,'Ivanov') - первичный ключ принимает значение не 4, а 6, хотя строк 4 и 5 уже нет. Что это значит) и подскажите, пожалуйста, как с этим бороться.
А что, приближается к пределу для столбца типа INT? Если не приближается - то не надо ничего делать, пусть будет 1, 3, 7 - так и должно быть. Это ID (идентефикаторы), а не порядковые номера. Если приближается - поменяй тип столбца на UNSIGNED INT или BIGINT.