PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Urutan sementara dalam SELECT

Mengapa Anda tidak menambahkan serial serial kolom kunci utama ke tabel?

ALTER TABLE login ADD column login_id serial;
ALTER TABLE login ADD CONSTRAINT login_pkey PRIMARY KEY(login_id);

Operasi pertama akan menulis ulang tabel dan mengunci untuk beberapa waktu. Saya kemudian akan menjalankan

VACCUM FULL ANALYZE login;

Alternatif inferior:row_number() seperti yang ditunjukkan oleh @Joachim . Untuk performa maksimal, Anda dapat meninggalkan OVER klausa kosong:

row_number() OVER () AS rn

Selain:gunakan AS kata kunci untuk alias kolom (sementara itu hanya noise untuk alias tabel).

Atau Anda dapat menggunakan ctid sebagai pengganti orang miskin untuk kunci utama. Itu akan menjadi lebih cepat :

Detail:
Pembuatan urutan sesuai pesanan

Contoh di dba.SE:
menomori baris secara berurutan untuk sejumlah tabel



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bilangan bulat di luar jangkauan dalam database PostgreSQL

  2. Postgresql SELECT jika string berisi

  3. Bagaimana menemukan apakah ada batasan kunci unik untuk kolom yang diberikan

  4. Postgres LIKE dengan nilai kolom sebagai substring

  5. Bidang kenaikan dengan batasan bukan nol dan unik di PostgreSQL 8.3