【发布时间】: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