For at uddybe Marks korrekte svar beholder PostgreSQL ikke et rækketidsstempel, og det beholder ikke rækker i nogen bestemt rækkefølge. Medmindre du definerer dine tabeller med en kolonne, der indeholder det tidsstempel, de blev indsat på, er der ingen måde at vælge dem i den rækkefølge, de blev indsat.
PostgreSQL vil ofte returnere dem i den rækkefølge, de blev indsat i alligevel, men det er bare fordi de tilfældigvis er i den rækkefølge på disken. Dette ændres, når du update
s på bordet, eller deletes
derefter insert
s. Operationer som vacuum full
også ændre det. Du bør aldrig, aldrig stole på ordren uden en eksplicit order by
klausul.
Hvis du ønsker, at indsættelsestidsstemplet skal variere for rækker inden for en transaktion, kan du bruge clock_timestamp
i stedet for now()
. Brug også SQL-standarden current_timestamp
i stedet for at skrive now()
.