SQLite3
- 按照datetimeColumn(日期数据格式为TimeStamp)找到日期最近的一行或几行
SELECT * FROM myTable
WHERE datetimeColumn = (SELECT max(datetimeColumn)
FROM myTable);
- 复制整张表格式和数据,注意要加
as
,貌似index不会被复制,日期时间数据格式从TimeStamp变成了NUM。。。虽然不影响使用,因为日期时间数据本来就存成了数字。
CREATE TABLE newTable as SELECT * FROM oldTable;
如果直接重命名表,日期数据格式 和index都不变。
ALTER TABLE oldTable RENAME TO newTable;
- sqlite3内部rowid:
只有在PRIMARY KEY设置为Integer时才会替代rowid,设置为int或其它都不行。
create table mytable(id integer PRIMARY KEY, mytable ntext)
显式查询rowid可获得rowid值
select rowid, * from mytable
rowid自动设置,即使插入失败也会+1,所以并不一定连续。最大值9223372036854775807,之后会自动搜索没有被使用的值 重新使用,不会提示用户。只有使用VACUUM可以重建rowid(如果没有用PRIMARY KEY设置为Integer替代rowid,也没有在建表是说明WITHOUT ROWID)。
持续更新…