Что не так с первичным ключом в Базе Данных?
Это sequence. Последовательность. Это - как туалетная бумага. Использованные номера можно выкинуть. Зачем их повторно брать? У вас же нет желания из мусорного ведра тягать грязные бумажки?
Можно управлять этим счетчиком.
ALTER TABLE my_table AUTO_INCREMENT = 1 сбросит счетчик на единицу.
ALTER TABLE my_table AUTO_INCREMENT = 200 установит счетчик на 200, например.

Или если вместо очистки (TRUNCATE) делать DROP а потом снова CREATE, то нумерация тоже будет идти с начала.

...чтобы первичный ключ постоянно начинал нумеровать с единицы противореит стандарту. Разве что свою СУБД написать?