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

PostgreSQL - следваща серийна стойност в таблица

Ако искате да поискате ID и да го върнете, можете да използвате nextval() , който напредва в последователността, без да вмъква данни.

Имайте предвид, че ако това е SERIAL колона, трябва да намерите името на последователността въз основа на името на таблицата и колоната, както следва:

Select nextval(pg_get_serial_sequence('my_table', 'id')) as new_id;

Няма чугунена гаранция, че ще видите тези идентификатори да се връщат в ред (последователността ги генерира в ред, но множество сесии могат да поискат идентификатор и все още да не го използват или да върнат обратно INSERT и идентификаторът няма да се използва повторно), но има гаранция, че те ще бъдат уникални, което обикновено е важното.

Ако правите това често, без действително да използвате идентификатора, в крайна сметка ще използвате всички възможни стойности на 32-битово integer колона (т.е. достигане на максималното цяло число, което може да се представи), но ако го използвате само когато има голяма вероятност действително да вмъкнете ред с този идентификатор, трябва да е ОК.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Форматирайте месеца с римски цифри в PostgreSQL

  2. Не може да се свърже с базата данни на Postgres със стека Bitnami Django

  3. Как да напишете заявка, нечувствителна към главните букви и за MySQL, и за Postgres?

  4. Използване на персонализиран JSON енкодер за изпълнението на PostgreSQL JSONB на SQLAlchemy

  5. Грешка:не може да се определи версията на PostgreSQL от '10.3' - Django на Heroku