什么SQL可以用来列出表,以及在SQLite数据库文件中的这些表中的行-一旦我已经附加了它与SQLite 3命令行工具上的ATTACH命令?
当前回答
.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';
其他回答
最简单的方法是直接打开数据库并使用.dump命令,而不是在调用SQLite 3 shell工具后附加它。
所以…(假设你的操作系统命令行提示符是$)而不是$sqlite3:
sqlite3> ATTACH database.sqlite as "attached"
从你的操作系统命令行,直接打开数据库:
$sqlite3 database.sqlite
sqlite3> .dump
Use:
import sqlite3
TABLE_LIST_QUERY = "SELECT * FROM sqlite_master where type='table'"
在SQLite命令行中有一个命令可用:
.tables ?PATTERN? List names of tables matching a LIKE pattern
它转换为以下SQL:
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1
对于SQLite 3的最新版本,您可以发布:
.fullschema
查看所有的create语句。
试试PRAGMA table_info(table-name); http://www.sqlite.org/pragma.html#schema
推荐文章
- 在SQL server查询中将NULL替换为0
- 在SQL中修改表的模式名
- 如何在SQL Server 2005的一条语句中更新两个表?
- 如何创建临时表与SELECT * INTO tempTable从CTE查询
- 用于查找计数为>的记录的SQL查询
- “从Table1左连接Table2”和“从Table2右连接Table1”可以互换吗?
- SQLite并发访问
- 在SQL Server的选择语句中使用带TOP的变量,而不是动态的
- 自然连接和内部连接的区别
- MySQL现在()+1天
- 在SQL中转换月号到月名函数
- 不可重复读和幻影读的区别是什么?
- 改变一个varchar列的最大长度?
- 外键约束:何时使用ON UPDATE和ON DELETE
- 如何连接字符串与填充在sqlite