में पहचान कॉलम अधिकतम मूल्य SQLite डेटाबेस के बारे में मेरे पास एक पूरी तरह अकादमिक प्रश्न है।एसक्यूएलएट डीबी
मैं अपने WinForm प्रोजेक्ट में डेटाबेस का उपयोग करने के लिए SQLite.net का उपयोग कर रहा हूं, और जब मैं एक नई तालिका स्थापित कर रहा था, तो मुझे आईडी कॉलम के अधिकतम मानों के बारे में सोचना पड़ा।
मैं अपने [ID]
स्तंभ, जो SQLite.net DataType Mappings के अनुसार, DbType.Int64
के बराबर है के लिए IDENTITY
का उपयोग करें। मैं सामान्य रूप से शून्य पर अपना आईडी कॉलम शुरू करता हूं (उस पंक्ति के साथ एक परीक्षण रिकॉर्ड के रूप में) और डेटाबेस ऑटो-वृद्धि है।
अधिकतम मूल्य (Int64.MaxValue
) 9,223,372,036,854,775,807 है। मेरे उद्देश्यों के लिए, मैं उस अधिकतम तक पहुंचने पर सतह को कभी भी खरोंच नहीं करूंगा, लेकिन डेटाबेस में क्या होता है? इस पर पढ़ने की कोशिश करते समय, मैंने पाया कि डीबी 2 स्पष्ट रूप से ऋणात्मक मूल्य (-9,223,372,036,854,775,807) के आसपास मूल्य को "लपेटता है" और वहां से वृद्धि करता है, जब तक कि डेटाबेस पंक्तियों को सम्मिलित नहीं कर सकता क्योंकि आईडी कॉलम अद्वितीय होना चाहिए।
क्या यह SQLite और/या अन्य डेटाबेस इंजन में होता है?
SQLite का आधिकारिक दस्तावेज http://www.sqlite.org/autoinc.html पर इसे कवर करता है, मैंने नीचे एक और विस्तृत उत्तर जोड़ा है। –