Par*_*ras 1 database sqlite android
我有一个包含以下架构的表:
public static final String PRIMARY_KEY = "_id";
public static final String TASK_NAME = "name";
public static final String TASK_DESCRIPTION = "description";
public static final String IS_TASK_COMPLETED = "is_completed";
public static final String IS_TASK_DELETED = "is_deleted";
public static final String TASK_START_DATE = "start_date";
public static final String TASK_START_TIME = "start_time";
public static final String ESTIMATED_TASK_END_DATE = "end_date";
public static final String TIMESTAMP = "timestamp";
Run Code Online (Sandbox Code Playgroud)
在一个片段中,我使用该insert()方法在表中插入一行.我知道这会返回rowId插入的行,但在这个帖子中我读到了
如果表包含INTEGER PRIMARY KEY类型的列,则该列将成为ROWID的别名.然后,您可以使用四个不同的名称中的任何一个来访问ROWID,上面描述的原始三个名称或给予INTEGER PRIMARY KEY列的名称.所有这些名称都是彼此的别名,并且在任何情况下都能同样有效.
返回的rowId也将与主键相同.但是如果删除一行并且在那种情况下插入另一行,rowId那么该primary key value "id"怎么做呢?
所有表(忽略异常)都有一个行ID.
当没有列声明为INTEGER PRIMARY KEY时,rowid它与其他列分开:
CREATE TABLE A ( _id INT PRIMARY KEY, name TEXT ); -- not "INTEGER"
| rowid | _id | name |
+-------+-----+------+
| 1 | 1 | this |
| 2 | 2 | that |
| 3 | 30 | NULL | -- does not need to be the same
Run Code Online (Sandbox Code Playgroud)
如果是一个INTEGER PRIMARY KEY列,都rowid和声明的列名是别名相同的价值:
CREATE TABLE B ( _id INTEGER PRIMARY KEY, name TEXT );
| rowid | name |
| = _id | |
+-------+------+
| 1 | this |
| 2 | that |
| 3 | NULL |
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
905 次 |
| 最近记录: |