Abychom rozšířili Markovu správnou odpověď, PostgreSQL neuchovává časové razítko řádku a neuchovává řádky v žádném konkrétním pořadí. Pokud své tabulky nedefinujete se sloupcem obsahujícím časové razítko, ve kterém byly vloženy, neexistuje způsob, jak je vybrat v pořadí, v jakém byly vloženy.
PostgreSQL je často stejně vrátí v pořadí, v jakém byly vloženy, ale to jen proto, že jsou na disku v tomto pořadí. To se změní, když provedete update
s v tabulce nebo deletes
pak později insert
s. Operace jako vacuum full
také změnit. Nikdy byste se neměli spoléhat na objednávku bez explicitního order by
doložka.
Také, pokud chcete, aby se časové razítko vložení u řádků v rámci transakce lišilo, můžete použít clock_timestamp
místo now()
. Také prosím použijte current_timestamp
standard SQL místo psaní now()
.