それ自体が自動インクリメントであるIDを使用してDBにテーブルを作成しようとしていますが、クエリにAUTOINCREMENTキーワードを追加しようとすると、次のことがわかります。
AUTOINCREMENTはINTEGER PRIMARY KEYでのみ許可されます
これが私のクエリです:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + " ( "
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NOTETITLE + " TEXT, " + KEY_NOTECONTENT + " Text, "
+ KEY_STATUS + " INTEGER)";
db.execSQL(sql);
}
また、AUTO_INCREMENTを書き込もうとしましたが、構文エラーが発生しました。
これが問題の原因であることがわかりました。AUTOINCREMENTワードを削除しようとすると、うまく機能するからです。
だから...問題は何だと思いますか?
KEY_ID
AND INTEGER
の間にスペースを追加する必要があります
だから変更
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
に
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
整数の主キーを持つテーブルを作成します。AUTOINCREMENTに明示的に言及する必要はありません。
例えば.
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
C TEXT
);
Insert into t1(C) values("Hello");
このようなテーブルを作成すると、INTEGER ...の前にスペースが置かれます。
"CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY AUTOINCREMENT)";