2015-01-04 108 views
0

當我的應用嘗試創建sqlite表時,出現語法錯誤。在SQLite中創建表時出現語法錯誤

這是創建表的代碼:

@Override 
public void onCreate(SQLiteDatabase db) { 
    String SQL = pictureTable(); 
    db.execSQL(SQL); 
} 

private String pictureTable() { 
    return "CREATE TABLE geophoto_db_pictures (picid integer," 
      + "name character varying(50)," 
      + "city character varying(20) NOT NULL DEFAULT 'Unknown'," 
      + "zipcode character varying(20) NOT NULL DEFAULT 'Unknown'," 
      + "country character varying(20) NOT NULL DEFAULT 'Unknown'," 
      + "picdate datetime NOT NULL DEFAULT DATETIME('now')," 
      + "tags character varying(200)," + "image BLOB NOT NULL," 
      + "uploaded integer NOT NULL DEFAULT 0, PRIMARY KEY (picid))"; 
} 

的錯誤是: android.database.sqlite.SQLiteException:近 「(」:錯誤的語法時才(代碼1)

任何幫助!非常感謝

+0

嘗試「改變字符()」而不是「字符改變()」 – 2015-01-04 12:51:08

+0

誤差保持其更改爲「不同的角色」後的相同:( – ThomasS 2015-01-04 12:57:31

+1

你picdate默認值設置是錯誤的。 [SQLite數據庫默認時間值 '現在'] [1] [1]:http://stackoverflow.com/questions/200309/sqlite-database-default-time-value-now – ZakiMak 2015-01-04 13:00:32

回答

2

默認值不能使用函數調用

但是,你可以使用`CURRENT_TIMESTAMP」變量:

CREATE TABLE 
    ... 
    picdate datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    ... 
+0

非常感謝:D – ThomasS 2015-01-04 13:14:25