2012-12-23 10 views
6

मैं एक SQLite तालिका के रूप में परिभाषित को बदलने के लिए कोशिश कर रहा हूँ इस प्रकार है:(1) के पास "AUTO_INCREMENT": सिंटेक्स त्रुटि जब फेरबदल तालिका

String CREATE_TABLE="CREATE TABLE IF NOT EXISTS " + tab_NAME + " (" 
          + row_ID + " INTEGER PRIMARY KEY , " 
          + row_NAME + " TEXT, " 
          + row_EMAIL + " TEXT, " 
          + row_WEBSITE + " TEXT, " 
          + row_TELEPHONE1 + " TEXT, " 
          + row_TELEPHONE2 + " TEXT, " 
          + row_TELEPHONE3 + " TEXT, " 
          + row_TELEPHONE4 + " TEXT, " 
          + row_TELEPHONE5 + " TEXT);"; 
     db_name.execSQL(CREATE_TABLE); 

     String newTab="CREATE TABLE IF NOT EXISTS temp (" 
       + row_ID + " INTEGER PRIMARY KEY AUTOINCREMENT , " 
       + row_NAME + " TEXT, " 
       + row_EMAIL + " TEXT, " 
       + row_WEBSITE + " TEXT, " 
       + row_TELEPHONE1 + " TEXT, " 
       + row_TELEPHONE2 + " TEXT, " 
       + row_TELEPHONE3 + " TEXT, " 
       + row_TELEPHONE4 + " TEXT, " 
       + row_TELEPHONE5 + " TEXT);"; 
     db_name.execSQL(newTab); 

और यहाँ auto_increment बयान बदल जाता है:

String alter="ALTER TABLE temp AUTO_INCREMENT=1;"; 
    ourDatabase.execSQL(alter); 

मुझे (1) near AUTO_INCREMENT: syntax error

क्या गलत है? कोई मदद??

उत्तर

1

क्या गलत है?

आप अवैध SQL निष्पादित करने का प्रयास कर रहे हैं।

कोई मदद?

Here is the documentation SQLite में ALTER TABLE कथन के वाक्यविन्यास के लिए। कॉलम जोड़ने या नाम बदलने के लिए आप ALTER TABLE का उपयोग करते हैं, न कि मौजूदा कॉलम को एक संख्यात्मक मान असाइन करने के लिए।

+0

मैं मैं स्तंभ के लिए auto_increment की सुविधा को बदलने के लिए कोशिश कर रहा हूँ न के बराबर कॉलम एक अंकीय मान, असाइन करने की कोशिश नहीं कर रहा हूँ करने के लिए 1. – Ahlam

+0

@Ahlam एक मूल्य rwo_ID: मैं के लिए SQLite प्रलेखन पढ़ने के लिए प्रोत्साहित 'ऑटोमेशन ': http://www.sqlite.org/autoinc.html – CommonsWare

13

SQLite में एक कॉलम घोषित किया गया है INTEGER प्राथमिक कुंजी स्वयं द्वारा autoincrement होगा। स्वचालित कीवर्ड हटाएं और फिर कोशिश करें।

चेक SQLite FAQ

+0

ठीक है, मैंने ' स्ट्रिंग ऑल्टर =" वैकल्पिक तालिका अस्थायी ऑटोमेशन = 1; "; ' ourDatabase.execSQL (परिवर्तन); ' हटा दिया और यह अच्छी तरह से काम करता है, लेकिन मुझे auto_increment मान को 1 पर रीसेट करने की आवश्यकता है, तो क्या करना है? – Ahlam

+2

तालिका को छोड़ दें और इसे फिर से बनाएं। –

+0

अगर आपकी त्रुटि हल हो गई है तो आप इसे उत्तर के रूप में स्वीकार कर सकते हैं :) –

4

sqlite सेटिंग में स्तंभ PRIMARY KEY के रूप में एक AUTOINCREMENT है। इसलिए स्पष्ट रूप से कॉलम को AUTOINCREMENT के रूप में निर्दिष्ट करने की आवश्यकता नहीं है। अपने संदर्भ के लिए यह link देखें।