私はこのスレッドを読んでいました:AndroidでのBaseColumnsの使用法とは何ですか、そしてBaseColumnsの使用方法を取得します。これは、SELECTステートメントで_idをフェッチする必要があります。
_idフィールドが「内部的に」作成されるのはいつですか。Androidが_idフィールドを追加するのはexecSQL(...)の実行中ですか?または、CREATE TABLEステートメントで定義する必要がありますか?
私はこのスレッドを読んでいました:AndroidでのBaseColumnsの使用法とは何ですか、そしてBaseColumnsの使用方法を取得します。これは、SELECTステートメントで_idをフェッチする必要があります。
_idフィールドが「内部的に」作成されるのはいつですか。Androidが_idフィールドを追加するのはexecSQL(...)の実行中ですか?または、CREATE TABLEステートメントで定義する必要がありますか?
「手動」で作成する必要があります。Android はそれを行いません。
たとえば、テーブルの作成中に、次を発行します。
CREATE TABLE messages (_id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER, message TEXT);
見る?_id
列は明示的に名前が付けられ、追加されます。
または、DB ヘルパー クラスの規則に従って、次のようなものを作成します。
db.execSQL("CREATE TABLE " + TABLE_MESSAGES + " ("
+ BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ COLUMN_TIMESTAMP + " INTEGER,"
+ COLUMN_MESSAGE + " TEXT"
+ ");");
ここで、TABLE_*
とCOLUMN_*
は DB ヘルパーの定数フィールドです。例:
public static final String TABLE_MESSAGES = "messages";
public static final String COLUMN_TIMESTAMP = "timestamp";
public static final String COLUMN_MESSAGE = "message";