PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak określić listę wartości dla sekwencji postgresql?

Może działać tak:

-- 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'));

Główne punkty:

1) Utwórz tabelę przeglądową z dwoma liczbami
- seq_id liczy od 1 do klucza podstawowego.
- id jest sekwencją twoich liczb (podstawiłem tu liczby losowe).
2) Utwórz sekwencję pomocniczą.
3) Uzyskaj swoje liczby za pomocą SELECT jak powyżej.
Potrzebujesz podselekcji lub wszystkich wartości zostaną zwrócone natychmiast.

To rozwiązanie zapewnia wszystkie zabezpieczenia nextval() ma do zaoferowania dla współbieżności.
Utwórz unikalny indeks na priv_id(id), jeśli chcesz mieć pewność, że Twoje niestandardowe identyfikatory są niepowtarzalne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę utworzyć ograniczenie, aby sprawdzić, czy wiadomość e-mail jest ważna w postgresie?

  2. Jak wyświetlić wszystkie tabele ze zmianami danych w ciągu ostatnich 24 godzin?

  3. Jak przekonwertować liczbę całkowitą na łańcuch i uzyskać długość łańcucha?

  4. Procent sumy w PostgreSQL bez podzapytania

  5. Spring Boot data-jpa i nativeQuery Postgres cast