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

PostgreSQL में अद्वितीय कॉलम मान शिफ्ट (अपडेट) करें

यह वास्तव में थोड़ा भ्रमित करने वाला है क्योंकि अन्य सभी बाधाओं का मूल्यांकन एक बयान स्तर पर किया जाता है, डीएमएल संचालन के दौरान प्रति पंक्ति स्तर पर केवल पीके/अद्वितीय बाधा का मूल्यांकन किया जाता है।

लेकिन आप प्राथमिक कुंजी बाधा को स्थगित करने योग्य घोषित करके उसके आसपास काम कर सकते हैं:

create table tbl_test 
(
  testkey   INTEGER,
  constraint pk_tbl_test primary key (testkey) deferrable initially immediate
);

insert into tbl_test values (1), (2);

set constraints all deferred;

update tbl_test
   set testkey = testkey +1;

आस्थगित बाधाओं में कुछ ओवरहेड होता है, इसलिए इसे initially immediate . के रूप में परिभाषित करके इस ओवरहेड को न्यूनतम रखा जाता है। जरूरत पड़ने पर आप बाधा मूल्यांकन को set constraint . का उपयोग करके स्थगित कर सकते हैं ।

हालांकि असली सवाल यह है कि आपको प्राथमिक कुंजी मान पर ऐसा करने की आवश्यकता क्यों होगी? पीके मूल्यों का कोई मतलब नहीं है, इसलिए सभी मूल्यों को बढ़ाने के लिए यह अनावश्यक लगता है (भले ही डीबीएमएस का उपयोग किया जा रहा हो)



  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. pg_restore वापसी विकल्प -d/--dbname और -f/--file का एक साथ उपयोग क्यों नहीं किया जा सकता है?

  3. एकाधिक स्तंभों के लिए चयन और सम्मिलित करें के बीच दौड़ की स्थिति

  4. स्पार्क एसक्यूएल डेटाफ्रेम के साथ कार्यक्षमता हटाएं

  5. POSTGRESQL INSERT यदि विशिष्ट पंक्ति नाम मौजूद नहीं है?