【发布时间】:2020-01-19 01:17:23
【问题描述】:
我想从给定的表中运行SELECT,如果该表不存在,它应该不会失败。假设为简单起见,该表仅包含一列和一行,而我在那个标量之后。如果表不存在我想找回0。
我知道我可以这样做:
query("select count(1) from information_schema.tables where table_name = 'versions'")
if result > 0
return query("select version from versions limit 1")
else
return 0
或者我可以使用存储过程 / plpgsql 函数来做同样的事情。
但是有没有办法在单个临时查询中做同样的事情?
(我正在做两个查询。我没有充分的理由来更改它。我只是好奇是否/如何做到这一点。)
【问题讨论】:
-
规划器将在规划时查找查询中的所有关系。您可以使用函数“延迟”计划时间,但在简单的查询中这是一个问题。
标签: sql postgresql plpgsql dynamic-sql