2017-10-16 56 views
0

是否有确定给定关系是否为tableview的命令?从视图中区分表的命令

我使用的试验和错误的方法做:

SHOW CREATE VIEW table_name 

如果它是一个table,而不是一个view,我的数据库软件(普雷斯托在DBeaver)会给我一个错误:

Relation table_name is a table , not a view

我认为这个错误来自一个类似的命令在内部运行来审查我的查询。如果它是view,则命令当然有用。

+3

如果您使用的是SHOW CREATE ..,那么您的**是针对特定的数据库引擎 - 这是非标准的SQL –

+1

查询元数据的标准方法是[信息模式](https:// en.wikipedia.org/wiki/Information_schema)。 *你的*数据库系统是否实现它我不能说。另外,请注意,尽可能多地,你*不应该区分表和视图。您应该能够用视图替换表格(反之亦然),而不是使现有代码无效。 –

回答

1

以下将显示哪些是view S和其提供的所有表的信息,包括表是table S:

SELECT * FROM information_schema.tables 

详情请参阅Information Schema