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

Sådan angives en liste over værdier for en postgresql-sekvens

Kunne fungere sådan her:

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

Vigtigste punkter:

1) Opret en opslagstabel med to tal
- seq_id tæller fra 1 og din primære nøgle.
- id er dine tal i rækkefølge (jeg har erstattet tilfældige tal her).
2) Opret en hjælpesekvens.
3) Få dine tal med et SELECT som ovenfor.
Du skal bruge undervælgeren, eller alle værdier vil blive returneret med det samme.

Denne løsning giver al sikkerhed nextval() har at tilbyde for samtidighed.
Opret et unikt indeks på priv_id(id), hvis du vil sikre dig, at dine brugerdefinerede id'er er unikke.



  1. SSMA for Oracle Fejl i forbindelse til Oracle

  2. slutte sig til flere mysql-tabeller med præfiks og gruppesum

  3. PHP hashing funktion, der returnerer et heltal (32bit int)

  4. Sådan får du frekvensen af ​​et ord i en række ved hjælp af mysql fuldtekst