【问题标题】:Get tables name with the same query in Postgres-MySql-SQLite在 Postgres-MySql-SQLite 中获取具有相同查询的表名
【发布时间】:2021-07-10 22:07:05
【问题描述】:

我正在做一个学校项目,我正在为我们的项目在 NodeJS 中构建一个小服务器,我的任务之一是找到一种方法来获取所选数据库中所有“用户”表的表名。 由于我需要连接到不同的 SQL 数据库,MySQL - PostgreSQL - SQLite,我希望通过执行相同的查询来获得相同的结果,我将解释我自己。 我已经开始研究 MySQL 并且我已经“找到”了这个查询:

`SELECT table_name FROM information_schema.tables WHERE table_schema ='${config.DB_Name}'`

它正确地返回了所选数据库中的所有表名。之后我开始使用 PostgreSQL 并且该查询(成功运行)返回 0 结果。 所以我开始寻找另一个可以在 Postgres 中返回相同结果的查询,我发现了这个:

    SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';

我想知道,是否有任何查询在 MySQL-PostgreSQL-SQLite 上运行,给我同样的结果?

【问题讨论】:

  • 不,没有。检查这个:stackoverflow.com/a/83195/10498828 用于 SQLite。
  • 每种方言在架构信息方面大体上不同。这里没有灵丹妙药。这就是为什么存在像Sequelize 这样的工具的原因。

标签: mysql sql postgresql sqlite


【解决方案1】:

您的 PostgreSQL 查询将在所有支持 SQL 标准功能 F021 的数据库上正常工作。如果它在 MySQL 中不起作用,那么要么它不支持该功能,要么就是一个错误。

请注意,PostgreSQL 和 SQL 标准所称的架构在 MySQL 中称为“数据库”。

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多