2010-06-26 14 views
11

क्या SQLite डेटाबेस में एक ऑटो वृद्धि कॉलम का शोध करना संभव है, और यदि ऐसा है, तो यह कैसे किया जाता है?SQLite डेटाबेस में एक ऑटो वृद्धि कॉलम का शोध कैसे किया जाए?

यानी। SQL सर्वर में DBCC CHECKIDENT ('MyTable', RESEED, 1) के बराबर।

उत्तर

20

SQLite में SQLITE_SEQUENCE नाम की एक तालिका है, जो तालिका के सबसे बड़े RowId मान को ट्रैक करती है। आप इस तालिका पर सम्मिलित, अद्यतन और हटा सकते हैं। उदाहरण के लिए, कम तालिका कथन एसक्यूएल सर्वर आप कुछ की तरह हो सकता है के रूप में इसी तरह की सुविधा की नकल करने की:

DELETE FROM MyTableName; 
DELETE FROM SQLITE_SEQUENCE WHERE NAME = 'MyTableName'; 

ऊपर के उदाहरण में MyTableName से सभी डेटा हटा दिया जाता है, और ऑटो वेतन वृद्धि rowid से मूल्य को हटाने के द्वारा रीसेट SQLITE_SEQUENCE तालिका। अधिक जानकारी के लिए AUTOINCREMENT के लिए प्रलेखन देखें।

+0

धन्यवाद, यह पूरी तरह से काम करता है। बस प्रत्येक पंक्ति के अंत में एक अर्धविराम जोड़ना पड़ा। – Mun

+0

मुझे यह त्रुटि मिली है कि 'ऐसी कोई तालिका SQLITE_SEQUENCE' नहीं है ... – dialex

3
DELETE 
FROM MyTableName 

select * 
from SQLITE_SEQUENCE 

update SQLITE_SEQUENCE 
set seq = 0 
where name ='MyTableName'