协慌网

登录 贡献 社区

如何列出使用 ATTACH 打开的 SQLite 数据库文件中的表?

在 SQLite 3 命令行工具上使用ATTACH命令附加 SQL 时,可以使用哪些 SQL 来列出表以及 SQLite 数据库文件中这些表中的行?

答案

在 SQLite 数据库中查看表有几个步骤:

  1. 列出数据库中的表:

    .tables
  2. 列出表格的外观:

    .schema tablename
  3. 打印整个表格:

    SELECT * FROM tablename;
  4. 列出所有可用的 SQLite 提示命令:

    .help

.tables.schema “辅助” 功能不考虑附加的数据库:他们只是查询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';

看来你需要通过sqlite_master表,如下所示:

SELECT * FROM dbname.sqlite_master WHERE type='table';

然后用SELECT或类似方法手动浏览每个表以查看行。

.DUMP.SCHEMA命令似乎根本看不到数据库。