Postgres сортировка по умолчанию по id - worldship
Мне нужно настроить worldship, чтобы вытащить из одной из наших баз данных postgres. Мне нужно, чтобы пакеты сортировались по идентификатору. У меня нет никакого способа (о котором я знаю), чтобы worldship отправлял заказ по пункту, поэтому мне нужно иметь значение по умолчанию для возвращаемых записей по id.
Во-вторых, я понятия не имею, как сортировки по умолчанию postgres выглядят так, как в прошлый раз, когда запись была изменена, поэтому, если я пишу две записи с идентификатором 1,2, то меняю запись 2, когда я запускаю запрос, он возвращает их с записью 2 быть первым
3 ответа
Строки возвращаются в неуказанном порядке, в соответствии со спецификациями sql, если только вы не добавите заказ по предложению. В Postgres это означает, что вы получите строки в основном порядке, в котором строки читаются на диске.
Если вы хотите получить последовательный заказ без необходимости добавлять заказ по предложению, создайте представление, как предлагается в комментарии Джека.
Как бы то ни было, что, вероятно, не так уж и много, порядок PostgreSQL по умолчанию основан на времени последнего обновления записей. Последние обновленные записи будут отображаться последними.
Нет такой вещи как "сортировка по умолчанию". Строки в таблице не отсортированы.
Вы можете подделать это с помощью представления (как предлагает Джек Мани), что вы никак не можете повлиять на порядок возвращаемых строк.
Но если вы сделаете это, помните, что добавление дополнительного ORDER BY к SELECT на основе этого представления приведет к сортировке данных дважды.
Другой вариант может состоять в том, чтобы запустить команду CLUSTER для этой таблицы, чтобы физически упорядочить строки на диске в соответствии с желаемым столбцом. Но этот подоконник не гарантирует, что строки будут возвращены в указанном порядке. Даже с равниной SELECT * FROM your_table
(но шансы достаточно высоки для этого). Вам нужно будет регулярно выполнять этот оператор, потому что порядок, созданный командой CLUSTER, не поддерживается автоматически.
В конечном итоге вы могли бы использовать отсортированный индекс, который должен гарантировать вам порядок извлеченных строк в случае, если план запроса достигнет индекса, или если вы его принудительно используете, но этот подход будет более чем обходным:). ORDER BY
Пункт - это путь, как уже упоминалось.