区分表和视图的命令

Mic*_*ico 5 sql presto dbeaver

是否有命令可以确定给定关系是 atable还是 a view

我使用的试错方法是:

SHOW CREATE VIEW table_name
Run Code Online (Sandbox Code Playgroud)

如果它是 a table,而不是 a view,我的数据库软件(DBeaver 中的 Presto)会给我一个错误:

关系table_name是 a table,而不是 aview

我认为此错误来自内部运行的类似命令以审查我的查询。如果是 a view,该命令当然有效。

Sql*_*Guy 7

下面将显示所有可用表的信息表,包括哪些是views,哪些是tables:

SELECT * FROM information_schema.tables
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅信息架构。

  • 需要注意的是,如果您的数据存储很大,查询“information_schema”可能会很慢,因此最好指定“where table_schema = '{schema}”,甚至“where table_name = '{table}'” (2认同)