9

次のように定義された SQLite テーブルを変更しようとしています。

    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

どうしたの??何か助けて??

4

2 に答える 2

17

SQLite では、INTEGER PRIMARY KEY と宣言された列は、それ自体で自動インクリメントします。AUTOINCREMENT キーワードを削除してから試してください。

SQLite FAQを確認する

于 2012-12-23T14:59:52.623 に答える
4

sqlite列の設定ではPRIMARY KEYですAUTOINCREMENT。したがって、列を明示的に指定する必要はありませんAUTOINCREMENT。このリンクを参照して確認してください。

于 2012-12-24T11:14:17.350 に答える