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

Cara menentukan daftar nilai untuk urutan postgresql

Bisa bekerja seperti ini:

-- DROP SCHEMA x CASCADE;
CREATE SCHEMA x;
CREATE TABLE x.priv_id(seq_id int primary key, id int);

INSERT INTO x.priv_id
SELECT generate_series(1,100,1), (random() * 1000)::int;

CREATE SEQUENCE x.priv_seq;

SELECT id
FROM   x.priv_id
WHERE  seq_id = (SELECT nextval('x.priv_seq'));

Poin utama:

1) Buat tabel pencarian dengan dua angka
- seq_id dihitung dari 1 dan kunci utama Anda.
- id adalah nomor Anda secara berurutan (saya mengganti nomor acak di sini).
2) Buat urutan pembantu.
3) Dapatkan nomor Anda dengan SELECT seperti di atas.
Anda memerlukan subselect, atau semua nilai akan dikembalikan sekaligus.

Solusi ini memberikan semua keamanan nextval() ditawarkan untuk konkurensi.
Buat indeks unik di priv_id(id) jika Anda ingin memastikan id khusus Anda unik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Batasan pengecualian pada kolom bitstring dengan operator AND bitwise

  2. PgSQL mengubah hari-hari menjadi tanggal

  3. Kembalikan baris SETOF dari fungsi PostgreSQL

  4. Bagaimana cara memetakan nama zona waktu Rails ke PostgreSQL?

  5. LOWER() – Konversikan ke Huruf Kecil di PostgreSQL