取得sqlite数据库里所有的表名
查询table,type 段是'table',name段是table的名字, so:
select name from sqlite_master where type='table' order by name;
查询indices,type段是'index', name 是index的名字,tbl_name是index所拥有的table的名字
通过以下语句可查询出某个表的所有字段信息
PRAGMA table_info([tablename])
--------------------------------------------------------------------------------------------------------------------
(1)复制表,并把原表的 所有记录都复制到新表里。
CREATE TABLE newTb AS SELECT * FROM oldTb
(2)只复制表j结构,不复制数据到新表里。
注:该语句无法复制关键值
CREATE TABLE newTb AS SELECT * FROM oldTb WHERE 1=0
(3)精准时间到毫秒
SELECT strftime('%Y-%m-%d %H:%M:%f', 'now', 'localtime') FROM sqlite_master
SELECT strftime('%Y-%m-%d %H:%M:%f', [TimeFiled]) AS Expr1 FROM YourTable
数据库设置默认字段Default Value: (strftime('%Y-%m-%d %H:%M:%f', 'now', 'localtime'))
在SQL中有如下两种方法可以实现将一个表中数据到另一个表中
1> select ... into new_tablename from ... where ...
2> insert (into) old_tablename select ... from ... where ...
区别是前者把数据插入一个新表(先建立表,再插入数据),
后者是把数据插入已经存在的一个表中,我个人喜欢后者,因为在编程的结构上,应用的范围上,第二条语句强于前者。
用方法2可在Sqlite中实现将limitinfo中部分数据拷贝到processlist中
insert into processlist select null,type,NAME,isuse from limitinfo where mac='00:E0:B1:09:95:C2'
之所以select子句第一个是null,是因为表中第一个参数是INTEGER自增,填充null后可以保证数据Id是自增的。
取得sqlite数据库里所有的表名查询table,type 段是'table',name段是table的名字, so:select name from sqlite_master where type='table' order by name;查询indices,type段是'index', name 是index的名字,tbl_name是index所拥有的table的名字
http://xiaojun123hello.blog.163.com/blog/static/36166656201221943358866/
(1)
复制
表
,并把原
表
的 所有记录都
复制
到新
表
里
。
CREATE TABLE newTb AS SELECT * FROM oldTb
(2)只
复制
表
j结构,不
复制
数据到新
表
里
。
//可以自己在函数中定义:
sqlite
3 *db= NULL;
//读写锁,不需要的话,可以自己去掉。
int ExecSQL(const char* str, int (*callback)(void*,int,char**,char**))
int nRet;
nRet =
sqlite
3_exec(db, str, callback,NUL...
SQLite
实现不同数据
表
之前内容
复制
1) 在
SQLite
Expert Personal 3中鼠标右键点击目的
数据库
dist的Attach Database,将原
数据库
source附加在dist上。
2) 执行下面的SQL语句实现
表
格内容
复制
(将source
数据库
的
表
格table1中内容
复制
到dist的某一个
表
格中):
l 当dist
数据库
已经存在table1
表
格,
insert