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

Django ऑब्जेक्ट क्रिएशन और पोस्टग्रेज सीक्वेंस

सब कुछ ठीक काम करता है। django's create() का सीधे सीक्वेंस इंसमेंटेशन से कोई लेना-देना नहीं है। संक्षेप में:

  • postgresql ऑटो इंक्रीमेंटिंग ('सीरियल' टाइप) 'सीक्वेंस बनाएं + डिफॉल्ट के रूप में सीक्वेंस वैल्यू के साथ इंटीजरफील्ड बनाएं' का एक शॉर्टकट है
  • django की ऑटोफ़ील्ड प्राथमिक कुंजी (यदि आपके द्वारा अन्य निर्दिष्ट नहीं की गई है) तो बस एक सीरियल फ़ील्ड बनाता है
  • जब आप मैन्युअल रूप से आईडी निर्दिष्ट करते हैं, तो पोस्टग्रेज़ मान को डेटाबेस में सम्मिलित करता है। जब आप कोई मान निर्दिष्ट करते हैं, तो यह 'डिफ़ॉल्ट' पैरामीटर को छोड़ देता है, जो एक उचित व्यवहार है।

इसलिए, यदि आप चाहते हैं कि आपकी प्रविष्टियां आपकी पसंद के क्रम में अनुक्रम को बढ़ाएं, तो आपको SELECT setval('sequence_name', int_value) का उपयोग करके अनुक्रम मान को मैन्युअल रूप से बदलना होगा; अन्यथा इसे शून्य छोड़ दें और यह स्वचालित रूप से बढ़ जाएगा - वर्तमान वैल का चयन करें और इसे +1 बढ़ाएं (यदि अनुक्रम परिभाषा में अलग-अलग निर्दिष्ट नहीं है)।

एक और विचार यह है कि आप ऑब्जेक्ट बनाते हैं और फिर आईडी को अपडेट करते हैं (बेशक इसे पहले से उपयोग नहीं किया जा सकता है) और अंत में अनुक्रम मान को अधिकतम आईडी पर सेट करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. * अपरिचित फ़ील्ड:डेटाबेस क्या आपका मतलब था?:- मेट्रिक्स - सर्वर - लॉगिंग - DROPWIZARD

  2. ActiveModel ID श्रेणी को 8 बाइट तक बढ़ाएँ

  3. समय श्रृंखला में अंतराल का पता लगाएं और हटाएं

  4. PostgreSQL समग्र प्राथमिक कुंजी

  5. SQL क्वेरी:किसी तालिका से आदेशित पंक्तियाँ प्राप्त करें