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

Защо елементът на последователността на Postgres се повишава дори ако създаването на обект е неуспешно?

Да, това е очакваното поведение. Вижте документи :

Обърнете внимание, че nextval обикновено се задава като стойност по подразбиране за автоинкрементна/серийна колона.

Също така се опитайте да си представите колко трудно и неефективно би било, ако nextval трябваше да се върнат назад. По същество ще трябва да заключите всеки клиент на nextval докато не бъде обработена цялата транзакция (тази, която е придобила заключването). В такъв случай забравете за едновременните вмъквания.

Като например? Проблемът във вашия случай беше, че някой ръчно посочи стойност за колона за автоматично нарастване. Никога не трябва да правите това, освен ако не сте самурай. :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функциите за връщане на набор не са разрешени в UPDATE, когато се използва Postgres 10

  2. PostgreSQL:Автоматично увеличаване на базата на уникално ограничение за няколко колони

  3. Използване на SQL като xlookup

  4. Как да вмъкна PostGIS GEOMETRY Point в Sequelize ORM?

  5. Django израз на заявка за изчислени полета, които изискват условия и кастинг