加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 20:16:30 所属栏目:百科 来源:网络整理
导读:取得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的名字 通过以下


取得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)复制表,并把原表的 所有记录都复制到新表里。

CREATETABLE newTbAS SELECT * FROM oldTb

(2)只复制表j结构,不复制数据到新表里。

注:该语句无法复制关键值

CREATETABLE newTbAS SELECT * FROM oldTbWHERE 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','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是自增的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读