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

Стойността на първичния ключ не се увеличава правилно

Серийните колони, които вземат по подразбиране от последователностите, са никога гарантирано без пропуски . Гарантирано е, че са уникални и възходящо (както е дефинирано) и безопасен за едновременна употреба .
Ако транзакция, която е изтеглила число от последователността, бъде върната, номерът се записва и не се използва отново ... Съгласно документацията:

Ако видите големи пропуски като 427 -> 4357 , тогава това показва сериозен проблем. Или някаква друга колона (или който и да е процес) черпи от същата последователност, или имате проблем с логиката на вашето приложение, като по някакъв начин записвате много серийни идентификатори.

Типичните кандидати са неправилни цикли или транзакции, които никога не са били ангажирани.




  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. Някои идеи за обединяване на ресурси на ниско ниво в PostgreSQL

  3. Как мога да напиша SQL заявка, за да изчисля количеството компоненти, продавани с техните родителски модули? (Postgres 11/рекурсивен CTE?)

  4. Мога ли да задам (в рамките на dbase) ограничение на размера на поле bytea в PostgreSQL?

  5. PDO получава частични секунди от Postgres