sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL - získávání položek v pořadí, v jakém byly uloženy

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() .




  1. Vložte hodnoty ze dvou tabulek do jedné tabulky

  2. mysql.h chybí .... (Ruby on Rails, OSX)

  3. Architektura SQL Server AlwaysOn ( Availability Group ) a instalace krok za krokem -2

  4. Termín syntaxe SQL pro 'WHERE (sloupec1, sloupec2) <(hodnota1, hodnota2)'