Android SQLite无法识别的令牌

时间:2014-06-09 03:59:09

标签: android sqlite

您好我在使用SQL数据库时出错了,它在我的onCreate()方法中给出了一个错误,我对数据库工作和android编程都比较新,所以我真的很困惑。

这是我的代码

@Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL("CREATE TABLE " + DATABASE_TABLE1 + " (" + KEY_ROWID
                + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_TITLE
                + " TEXT NOT NULL, " + KEY_PATH + " TEXT NOT NULL, "
                + KEY_TAGS + " TEXT NOT NULL);");
    }

我从logcat获得的错误是这个

E/AndroidRuntime(1537): android.database.sqlite.SQLiteException: unrecognized token: "'s (_id INTEGER PRIMARY KEY AUTOINCREMENT, video_title TEXT NOT NULL, path_in_system TEXT NOT NULL, search_tags TEXT NOT NULL);": , while compiling: CREATE TABLE Video's (_id INTEGER PRIMARY KEY AUTOINCREMENT, video_title TEXT NOT NULL, path_in_system TEXT NOT NULL, search_tags TEXT NOT NULL);

1 个答案:

答案 0 :(得分:0)

您不能(通常)命名表Video's。也许你只是想使用Videos

但是,如果由于任何原因您绝对需要将表命名为Video's(带撇号)或任何其他非标准标识符,则可以使用双引号或括号。例如,这确实有效:

db.execSQL("CREATE TABLE [" + DATABASE_TABLE1 + "] (" + KEY_ROWID ...);

就像这样:

db.execSQL("CREATE TABLE \"" + DATABASE_TABLE1 + "\" (" + KEY_ROWID ...);