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

कौन सा बेहतर है - एक अपवाद फेंकना या पहले से त्रुटियों की जांच करना

आपको "ट्राई-एंड-कैच एक्सेप्शन" विधि को केवल इसलिए करना चाहिए क्योंकि आपको इसे वैसे भी करना है।

यदि आप पहले चेक करते हैं, तो आपके चेक और आपके इंसर्ट के बीच उस उपयोगकर्ता के लिए एक पंक्ति डालने से रोकने के लिए कुछ भी नहीं है, इस स्थिति में उपयोगकर्ता तालिका में होगा, भले ही आपका चेक उसे नहीं मिला।

किसी प्रकार के लेन-देन के भीतर चेक-एंड-इन्सर्ट चलाने में सक्षम होने की कमी (ताकि कोई और उस उपयोगकर्ता को अंतरिम में सम्मिलित न कर सके)। आप निश्चित नहीं हो सकते कि गैर-अपवाद काम करेगा।

और हालांकि कई DBMS' लेन-देन संबंधी सहायता प्रदान करते हैं, मुझे किसी . के बारे में पता नहीं है जो उस पंक्ति को लॉक कर देगा जिसे आपने अभी तक सम्मिलित नहीं किया है :-)

बेशक, यदि आपका एप्लिकेशन इस तरह से डिज़ाइन किया गया है कि केवल आपकी प्रक्रिया उपयोगकर्ताओं (और क्रमबद्ध) को सम्मिलित करेगी, तो आप चेक-फर्स्ट विधि का उपयोग कर सकते हैं। लेकिन मैं इस आशय की प्रचुर टिप्पणियां डालूंगा कि यदि आप कभी भी बड़े होते हैं तो इसे फिर से देखने की आवश्यकता होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऐरे डेटाबेस के लिए जारी नहीं है

  2. कैस्केड डिलीट सिर्फ एक बार

  3. Mac OS पर पोस्टग्रेस्क्ल को 10.1 से 9.6 तक डाउनग्रेड करने के लिए होमब्रे का उपयोग कैसे करें

  4. किसी दिए गए स्कीमा में कोई तालिका मौजूद है या नहीं, इसकी जांच कैसे करें?

  5. CSV फ़ाइल में हेडर के साथ CSV फ़ाइल से PostgreSQL तालिका में कैसे कॉपी करें?