PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да посочите списък със стойности за postgresql последователност

Може да работи така:

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

Основни точки:

1) Създайте справочна таблица с две числа
- seq_id брои от 1 и вашия първичен ключ.
- id са вашите числа в последователност (замених произволни числа тук).
2) Създайте помощна последователност.
3) Вземете вашите числа с SELECT като по-горе.
Нуждаете се от подизбора или всички стойностите ще бъдат върнати наведнъж.

Това решение осигурява цялата сигурност nextval() може да предложи за едновременност.
Създайте уникален индекс на priv_id(id), ако искате да сте сигурни, че персонализираните ви идентификатори са уникални.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Достъп до Postgres RDS от Kubernetes клъстер в AWS

  2. Postgresql:ФАТАЛНО:ролята не съществува

  3. GROUP BY и COUNT в PostgreSQL

  4. CREATE EXTENSION postgis се проваля,

  5. Дата и час в UTC - как да ги съхранявам в postgres?