Android - BaseColumns和_id

时间:2013-02-01 19:42:58

标签: android database sqlite

我正在阅读这个帖子:What is the use of BaseColumns in Android,我得到了如何使用BaseColumns,你必须在SELECT语句中获取_id。

我还不清楚是什么时候“内部”创建了_id字段?在execSQL(...)中,Android是否添加了_id字段?或者,我们还必须在CREATE TABLE语句中定义它吗?

1 个答案:

答案 0 :(得分:8)

您必须“手动”创建它。 Android不会为你做那件事。

例如,在创建表时,您会发出:

CREATE TABLE messages (_id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp INTEGER, message TEXT);

请参阅? _id列已明确命名并添加。

或者,按照DB-helper类的惯例,你会得到类似的东西:

db.execSQL("CREATE TABLE " + TABLE_MESSAGES + " ("
        + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
        + COLUMN_TIMESTAMP + " INTEGER,"
        + COLUMN_MESSAGE + " TEXT"
        + ");");

其中TABLE_*COLUMN_*是DB-helper的常量字段,例如:

public static final String TABLE_MESSAGES = "messages";
public static final String COLUMN_TIMESTAMP = "timestamp";
public static final String COLUMN_MESSAGE = "message";