取得sqlite数据库里所有的表名 &复制表


取得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是自增的。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值