PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL:recupero degli elementi nell'ordine in cui sono stati archiviati

Per espandere la risposta corretta di Mark, PostgreSQL non mantiene un timestamp di riga e non mantiene le righe in un ordine particolare. A meno che tu non definisca le tue tabelle con una colonna contenente il timestamp in cui sono state inserite, non è possibile selezionarle nell'ordine in cui sono state inserite.

PostgreSQL spesso li restituirà nell'ordine in cui sono stati inseriti, ma è solo perché capita che si trovino in quell'ordine sul disco. Questo cambierà man mano che esegui l'update s sul tavolo o deletes poi in seguito insert S. Operazioni come vacuum full cambialo anche tu. Non dovresti mai e poi mai fare affidamento sull'ordine senza un esplicito order by clausola.

Inoltre, se desideri che il timestamp di inserimento sia diverso per le righe all'interno di una transazione, puoi utilizzare clock_timestamp invece di now() . Inoltre, utilizza lo standard SQL current_timestamp invece di scrivere now() .