0

SQLite データベースを使用して、電子メールを Android にローカルに保存しようとしています。最初に を呼び出したときcontext.getWritableDatabase()、データベースはまだ存在せず、作成されます。create ステートメントで構文エラーが発生しています...私のコードは次のようになります...

private static final String DATABASE_NAME = "views.db";
    private static final int DATABASE_VERSION = 1;

    public static final String TABLE_VIEWS = "views";

    private static final String KEY_ID = "id";
    private static final String KEY_INDEX = "index";
    private static final String KEY_FROM = "from";
    private static final String KEY_UNREAD = "unread";
    private static final String KEY_SUBJECT = "subject";
    private static final String KEY_BODY = "body";


    // Database creation sql statement
    private static final String CREATE_VIEWS_TABLE = "CREATE TABLE " + TABLE_VIEWS + " ("
            + KEY_ID + " INTEGER PRIMARY KEY," 
            + KEY_INDEX + " INTEGER NOT NULL,"
            + KEY_UNREAD + " TEXT NOT NULL," 
            + KEY_SUBJECT + " TEXT NOT NULL,"
            + KEY_FROM + " TEXT NOT NULL," 
            + KEY_BODY + " TEXT NOT NULL);";

私は SQLite 構文が初めてで、これを引き起こす原因を探していましたが、役に立ちませんでした。これの原因は何ですか?データベースは、このようなデータをローカルに保存するための最良の方法です。

正確なエラーは次のとおりです。

07-01 17:54:42.827: E/AndroidRuntime(3036): Caused by: android.database.sqlite.SQLiteException: near "index": syntax error: CREATE TABLE views (id INTEGER PRIMARY KEY,index INTEGER NOT NULL,unread TEXT NOT NULL,subject TEXT NOT NULL,from TEXT NOT NULL,body TEXT NOT NULL);
4

1 に答える 1

6

キーワード「index」をテーブルの列名として使用することはできません。代わりに、tbl_index などの別の名前に変更してください。

于 2012-07-01T23:01:04.973 に答える