DUAL 是 Oracle 提供的一个虚拟表,用于在求值不需要实际引用数据库对象的表达式时使用,例如:
SELECT 1 FROM DUAL
PostgreSQL 不提供与 DUAL 表等效的表,因为它能够在不引用数据库对象的情况下求值表达式,例如:
SELECT 1
兼容性
orafce 实现了一个 DUAL 表,以帮助从 Oracle 迁移,创建方式如下:
CREATE VIEW public.dual AS SELECT 'X'::varchar AS dummy;
(来源)
PostgreSQL 中的隐式实现
2018 年,Tom Lane 提出了一个潜在的用例,即优化器可以通过在优化器/重写器中插入一个虚拟表来受益,这将简化各种代码路径:“SELECT ... FROM DUAL”并不像看起来那么愚蠢。这随后被实现为 PostgreSQL 12 中的提交 4be058fe。
有用链接
- DUAL 表 - 维基百科文章
另请参阅
反馈
请在此处提交关于“DUAL table”的任何评论、建议或更正。