@armageddon234

Что не так с первичным ключом в Базе Данных?

Я пользуюсь программой SQLite Studio. Когда я создаю какую либо таблицу, то я с самого начала добавляю столбец под названием "id" и задаю ему параметр "Первичный ключ". Вроде бы всё хорошо, добавляю элементы, и столбец id, нумеруется(1, 2, 3, 4, 5 .....). Но если я удалю все элементы, то этот столбец начинает продолжать нумерацию (14, 15, 16....). Как сделать так чтобы первичный ключ постоянно начинал нумеровать с единицы?
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 3
mayton2019
@mayton2019
Bigdata Engineer
Это sequence. Последовательность. Это - как туалетная бумага. Использованные номера можно выкинуть. Зачем их повторно брать? У вас же нет желания из мусорного ведра тягать грязные бумажки?
Ответ написан
Комментировать
AlexNest
@AlexNest
Работаю с Python/Django
Приведу очень условный пример.
Есть база данных банка;
Клиент:
- user_id
- другие поля
Кредит:
- какие-то поля
- user_id (Внешний ключ к Клиент)
- сумма кредита

И вод представьте - пришел условный Вася Пупкин и взял кредит на 10 лямов, чтобы открыть бизнес.
Что-то происходит и запись о Васе из таблицы "Клиент" исчезает.
И тут приходите вы, оформить кредит на 100к на условную мазду. Система, видя свободный Васин id присваивает его вам и теперь вы должны банку 10 миллионов 100 тысяч. Правда круто?
Пример абсурдный, но суть, думаю, вы поняли.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Можно управлять этим счетчиком.
ALTER TABLE my_table AUTO_INCREMENT = 1 сбросит счетчик на единицу.
ALTER TABLE my_table AUTO_INCREMENT = 200 установит счетчик на 200, например.

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

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

Войдите, чтобы написать ответ

Похожие вопросы