sql >> Databáze >  >> RDS >> PostgreSQL

Jak zadat seznam hodnot pro sekvenci postgresql

Mohlo by to fungovat takto:

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

Hlavní body:

1) Vytvořte vyhledávací tabulku se dvěma čísly
- seq_id se počítá od 1 a vašeho primárního klíče.
- id jsou vaše čísla v posloupnosti (zde jsem dosadil náhodná čísla).
2) Vytvořte pomocnou posloupnost.
3) Získejte svá čísla pomocí SELECT jako výše.
Potřebujete podvýběr nebo všechny hodnoty budou vráceny najednou.

Toto řešení poskytuje veškeré zabezpečení nextval() musí nabídnout souběžnost.
Vytvořte jedinečný index na priv_id(id), pokud se chcete ujistit, že vaše vlastní ID jsou jedinečná.



  1. Jak provádět seskupené hodnocení v MySQL

  2. Nelze stáhnout binární soubor v PHP

  3. java null pointer výjimka Připravený příkaz SQL

  4. Jak zjistit, zda hodnota existuje v rámci VARRAY