Как проверить, удалены ли данные в PostgreSQL

Вчера мы добавили простую форму на наш сайт и только что реализовали API View с помощью Django, подключенного к базе данных PostgreSQL. Сегодня я запросил базу данных, чтобы узнать, сколько строк отправлено, и я обнаружил странную вещь в результатах: мы создали и перенесли нашу модель с помощью Django ORM, поэтому первичный ключ определяется как целочисленное поле с автоматическим приращением, проблема в том, что идентификаторы строк не являются непрерывными и настолько разнообразны, что когда я пишу этот вопрос, максимальное значение идентификатора равно 252, но у нас есть только 72 записи в таблице, Я видел это раньше в других таблицах, но эти таблицы подвергались запросам на удаление и обновление, но мы только вставляем в эту новую таблицу, и мой вопрос: удаляются ли наши данные или это нормальное поведение в PostgreSQL? Я искал в Google, и кажется, что единственный способ - проверить журналы WAL, но мы еще не включили это для нашей базы данных, есть ли другой способ проверить, согласованы ли данные или нет? Спасибо.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
169
1

Ответы 1

Ожидайте дыр в последовательности

Если у вас есть несколько подключений к базе данных, которые добавляют строки, вы должны ожидать увидеть дыры в результатах порядковых номеров.

Если Алиса добавляет строку, она может увеличить последовательность с 10 до 11, еще не выполняя COMMIT. Тем временем Боб добавляет запись, увеличивая последовательность до 12 и назначая 12 своей строке, которую он теперь фиксирует. Таким образом, в базе данных хранятся строки со значениями поля идентификатора 10 и 12, но не 11.

  • Если Алиса зафиксирует, то в запросе появится 11.
  • Если Алиса выполняет ROLLBACK, тогда в запросе появится 11 никогда.

спасибо за ответ, но я просто хочу знать, есть ли способ убедиться, что это так? вы правы, мы используем пулы подключений, и возможен сценарий нескольких подключений, но у нас есть большие пробелы, например 10 -> 35 или 218 -> 237, и я думаю, эти пробелы нормальны?

M-N 29.10.2018 10:06

Другие вопросы по теме