Чтобы быть более ясным, можно переформулировать вопрос следующим образом: влияет ли удаление первых трех записей из таблицы на позиции оставшихся записей после вставки новых четырех записей?
В PostgreSQL данные удаляются из таблицы путем выполнения операции DELETE. При удалении записей из таблицы в PostgreSQL следующее происходит: 1. Данные, которые были удалены, физически остаются в файле базы данных до тех пор, пока они не будут перезаписаны новыми данными. 2. Идентификаторы строк, которые были удалены, переиспользуются для новых записей, вставленных после удаления. Это значит, что позиции оставшихся записей после вставки новых данных могут измениться. 3. При последующих операциях вставки записей в таблицу PostgreSQL может использовать идентификаторы строк, которые были удалены, прежде чем они будут использоваться для новых записей. Таким образом, удаление первых трех записей из таблицы PostgreSQL может повлиять на позиции оставшихся записей после вставки новых четырех записей из-за переиспользования идентификаторов строк.
В реляционных БД не существует гарантий относительно порядка записей внутри таблицы . Этот порядок
- это особенности технической реализации хранения данных внутри блоков и сегментов. Это - "know how"
и это будет зависеть от типа DBMS (Postgres, MySQL, Oracle) и от типа таблицы (heap, index-organized, clustered e.t.c)
Если говорить грубо, то записи (data-rows) лежат не плотно а вразнобой с пробелами с выравниванием
к блокам. Ну тоесть вообще-вообще не так как в Excel. Удаление data-rows в Postgres насколько я помню
физически не удаляет запись а помечает ее мертвой используя служебные поля. Впоследствии VACUUM
делает работы по уплотнению.
Поэтому порядок ты сам обеспечиваешь, делая запрос с опцией ORDER BY some_date_time.