Android SQLite:Order by';insertOrderinDB';
我需要知道如何使用DB中的插入顺序进行选择,而不必自己创建任何索引字段。这可能吗 事务中的插入顺序是线性模式吗?(第一次插入句子->第一次插入) 数据库创建:Android SQLite:Order by';insertOrderinDB';,android,sqlite,Android,Sqlite,我需要知道如何使用DB中的插入顺序进行选择,而不必自己创建任何索引字段。这可能吗 事务中的插入顺序是线性模式吗?(第一次插入句子->第一次插入) 数据库创建: private static final String CREATE_TABLE_SONGS = "CREATE TABLE IF NOT EXISTS SONGS (" + "LIST_ID int NOT NULL, " + "PLAY_ID int NOT NULL, " + //ID of the
private static final String CREATE_TABLE_SONGS = "CREATE TABLE IF NOT EXISTS SONGS (" +
"LIST_ID int NOT NULL, " +
"PLAY_ID int NOT NULL, " + //ID of the song in the list
"SONG_ID int NOT NULL, " + //ID of the song
"TITLE varchar(200) NOT NULL," +
"TIME int NOT NULL, " +
"PROVIDER int NOT NULL, " +
"PROVIDER_ID varchar(200) NOT NULL, " +
"SONG_STATE int NOT NULL, " +
"PRIMARY KEY (LIST_ID,PLAY_ID));";
然后
db.execSQL(CREATE_TABLE_SONGS);
考虑到id的自动递增性质,应该这样做。按照插入行的时间顺序对行进行排序的最佳实践方法是使用时间戳列,该列在插入行时被指定为默认值,即与“现在”对应的日期时间。这在SQLite中很容易做到 SQLite表有一个名为
ROWID的“secret”列,其值随着行的增加而增加。它可以作为“订单输入表”的代理ROWID
基本上是表的“自由”自动递增整数主键列
请注意,根据定义,SQL数据库没有行排序的概念。如果ROWID
的行为在SQLite中都发生了变化,我会感到惊讶(因为它的存在和行为都发生了变化),通常,如果您想在SQL数据库中以有序方式检索行,您需要自己负责存储排序信息。您的意思是不改变表结构?不添加任何其他内容field@LAS_VEGASandroid.database.sqlite.SQLiteException:没有这样的列:_ID@LAS_VEGAS修改后的问题;)并且TIME
不是插入时间吗?android.database.sqlite.SQLiteException:没有这样的列:\u ID:
order by _id