PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

प्रत्येक अपडेट पर PostgreSQL ऑटो-इंक्रीमेंट बढ़ता है

जब भी किसी प्रविष्टि की सफलता की परवाह किए बिना किसी प्रविष्टि का प्रयास किया जाता है, तो एक क्रम बढ़ा दिया जाएगा। एक साधारण update (जैसा कि आपके उदाहरण में है) इसे नहीं बढ़ाएगा बल्कि insert on conflict update insert . के बाद से होगा update . से पहले कोशिश की जाती है ।

एक समाधान id . को बदलना है करने के लिए bigint . एक और अनुक्रम का उपयोग नहीं करना है और इसे स्वयं प्रबंधित करना है। और दूसरा है मैन्युअल अप्सर्ट करना:

with s as (
    select id
    from notifications
    where title = 'something'
), i as (
    insert into notifications (title, description)
    select 'something', 'whatever'
    where not exists (select 1 from s)
)
update notifications
set title = 'something else'
where id = (select id from s)

ऐसा लगता है title अद्वितीय है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC, Elasticsearch और Postgresql Json डेटा प्रकार

  2. Postgres.app . के साथ मावेरिक्स में पीजी रत्न स्थापित नहीं कर सकता

  3. दो तालिकाओं के बीच निकटतम बिंदुओं का अद्वितीय असाइनमेंट

  4. Pycharm त्रुटि:गलत तरीके से कॉन्फ़िगर किया गया

  5. Postgresql - विशाल तालिका (100 मिलियन पंक्तियों) को अद्यतन करने के लिए कैसे गति करें?