Aby rozwinąć poprawną odpowiedź Marka, PostgreSQL nie przechowuje znacznika czasu wiersza ani nie przechowuje wierszy w określonej kolejności. Jeśli nie zdefiniujesz swoich tabel za pomocą kolumny zawierającej sygnaturę czasową, w której zostały wstawione, nie ma możliwości wybrania ich w kolejności, w jakiej zostały wstawione.
PostgreSQL często zwraca je w takiej kolejności, w jakiej i tak zostały wstawione, ale dzieje się tak tylko dlatego, że znajdują się w tej kolejności na dysku. Zmieni się to podczas update s w tabeli lub deletes później insert s. Operacje takie jak vacuum full również to zmienić. Nigdy, przenigdy nie powinieneś polegać na zamówieniu bez wyraźnego order by klauzula.
Ponadto, jeśli chcesz, aby znacznik czasu wstawienia różnił się dla wierszy w ramach transakcji, możesz użyć clock_timestamp zamiast now() . Użyj również standardowego dla SQL current_timestamp zamiast pisać now() .