2012-12-23 57 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

我不是想分配不存在的列的數值, 我試圖改變列rwo_ID的auto_increment功能值爲1. – Ahlam

+0

@Ahlam:我鼓勵你閱讀SQLite的文檔'AUTOINCREMENT':http://www.sqlite.org/autoinc.html – CommonsWare

13

在SQLite中,聲明INTEGER PRIMARY KEY的列將自動自動增加。刪除AUTOINCREMENT關鍵字,然後嘗試。

檢查SQLite FAQ

+0

好的,我刪除了 'String alter =「ALTER TABLE temp AUTO_INCREMENT = 1;」;' 'ourDatabase.execSQL(alter);' 它運行良好,但我需要將auto_increment值重置爲1,那麼該怎麼辦? – Ahlam

+2

刪除表並重新創建它。 –

+0

如果你的錯誤得到解決,你也可以接受這個答案:) –

4

sqlite設定欄作爲PRIMARY KEYAUTOINCREMENT。所以不需要明確指定爲AUTOINCREMENT。檢查這link供您參考。

相關問題