Android SQLiteException:接近“0”:语法错误

时间:2015-01-25 14:46:24

标签: android sqlite

我对SQLite很陌生,我有一个语法错误,我无法指出......我觉得我已经尝试了一切......

我的代码:

String favorites = "CREATE TABLE " + AvailoContract.Favorites.TABLE_NAME
            + "(" + AvailoContract.Favorites._ID
            + " INTEGER PRIMARY KEY AUTOINCREMENT ,"
            + AvailoContract.Favorites.ID + " TEXT ,"
            + AvailoContract.Favorites.ROOTUID + " TEXT ,"
            + AvailoContract.Favorites.FILEKEY + " TEXT ,"
            + AvailoContract.Favorites.NAME + " TEXT ,"
            + AvailoContract.Favorites.SUBJECT + " TEXT ,"
            + AvailoContract.Favorites.DESCRIPTION + " TEXT ,"
            + AvailoContract.Favorites.BODY + " TEXT ,"
            + AvailoContract.Favorites.ACCOUNTID + " TEXT ,"
            + AvailoContract.Favorites.DBMODIFIEDTIME + " INTEGER " + ")";
    db.execSQL(favorites);

如果我删除INTEGER行,它就可以了。 在整数行的某个地方有些不对劲。 这是合同类中的整数定义:

public final static long DBMODIFIEDTIME = 0;

我得到的错误:

01-25 16:45:11.312  29510-29536/com.appus.app E/AndroidRuntime﹕ FATAL EXCEPTION: Thread-114217
Process: com.appus.app, PID: 29510
android.database.sqlite.SQLiteException: near "0": syntax error (code 1): , while compiling: CREATE TABLE favorites(_id INTEGER PRIMARY KEY AUTOINCREMENT ,id TEXT ,rootUid TEXT ,fileKey TEXT ,name TEXT ,subject TEXT ,description TEXT ,body TEXT ,accountId TEXT ,false TEXT ,0 INTEGER )

感谢所有人提前帮助。

2 个答案:

答案 0 :(得分:0)

检查列AvailoContract.Favorites.ACCOUNTIDAvailoContract.Favorites.DBMODIFIEDTIME

根据您获得的错误,我认为false0可以是列的名称。

答案 1 :(得分:0)

AvailoContract.Favorites.DBMODIFIEDTIME是一个Long类型常量,你需要它是一个String,它是表列的名称,而不是值。 请注意,您正在创建一个表,而不是在其中插入值。