什么SQL可以用来列出表,以及在SQLite数据库文件中的这些表中的行-一旦我已经附加了它与SQLite 3命令行工具上的ATTACH命令?
当前回答
试试PRAGMA table_info(table-name); http://www.sqlite.org/pragma.html#schema
其他回答
试试PRAGMA table_info(table-name); http://www.sqlite.org/pragma.html#schema
要列出表格,您还可以这样做:
SELECT name FROM sqlite_master
WHERE type='table';
.tables和.schema“助手”函数不查找ATTACHed数据库:它们只查询SQLITE_MASTER表以查找“主”数据库。因此,如果你使用
ATTACH some_file.db AS my_db;
然后你需要做
SELECT name FROM my_db.sqlite_master WHERE type='table';
注意,临时表也不会用.tables显示:你必须列出sqlite_temp_master:
SELECT name FROM sqlite_temp_master WHERE type='table';
Use:
import sqlite3
TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"
使用.da查看所有数据库-其中一个被称为“main”。
该数据库的表可以通过以下方式查看:
SELECT distinct tbl_name from sqlite_master order by 1;
附加的数据库需要在ATTACH语句中用AS选择前缀,例如aa (, bb, cc…),因此:
SELECT distinct tbl_name from **aa.sqlite_master** order by 1;
请注意,在这里您也可以获得视图。要排除这些,请添加:
where type = 'table'
在order之前
推荐文章
- 如何从一个查询插入多行使用雄辩/流利
- 如何连接列在Postgres选择?
- 有人可以对SQL查询进行版权保护吗?
- 数据库触发器是必要的吗?
- 如何知道MySQL表最近一次更新?
- 如何转储一些SQLite3表的数据?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在MySQL中的一个查询中更新多个具有不同值的行
- 在SQL中更新多个列
- 如何删除表中特定列的第一个字符?
- MySQL OR与IN性能
- 为什么我应该使用基于文档的数据库而不是关系数据库?
- 哪个更快/最好?SELECT *或SELECT columnn1, colum2, column3等
- 将值从同一表中的一列复制到另一列
- 什么是数据库池?