4

私はこのスレッドを読んでいました:AndroidでのBaseColumnsの使用法とは何ですか、そしてBaseColumnsの使用方法を取得します。これは、SELECTステートメントで_idをフェッチする必要があります。

_idフィールドが「内部的に」作成されるのはいつですか。Androidが_idフィールドを追加するのはexecSQL(...)の実行中ですか?または、CREATE TABLEステートメントで定義する必要がありますか?

4

1 に答える 1

8

「手動」で作成する必要があります。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";
于 2013-02-01T20:00:48.340 に答える