TABLE 是一个 DML 命令,用于选择表中所有行和所有列,实际上是 SELECT * FROM table 的别名。
TABLE 在 PostgreSQL 8.4 中添加。
变更历史
- PostgreSQL 8.4
- 添加(提交 b09a1a29)
示例
TABLE 的基本执行示例
postgres=# \d foo
Table "public.foo"
Column | Type | Collation | Nullable | Default
--------+---------+-----------+----------+---------
id | integer | | |
postgres=# SELECT COUNT(*) FROM foo;
count
-------
1
(1 row)
postgres=# TABLE foo;
id
----
1
(1 row)
TABLE 可用在 SELECT 语句的部分
postgres=# WITH bar AS (TABLE foo) SELECT * FROM bar; id ---- 1 (1 row)
TABLE 不能与 WHERE 子句结合使用
postgres=# TABLE foo WHERE id > 1; ERROR: syntax error at or near "WHERE" LINE 1: TABLE foo WHERE id > 1
但可与 WITH, UNION, INTERSECT, EXCEPT, ORDER BY, LIMIT, OFFSET, FETCH { FIRST | NEXT } 和 FOR action 结合使用,例如:
postgres=# WITH bar AS (TABLE foo UNION ALL TABLE foo) TABLE bar ORDER BY id LIMIT 1; id ---- 1 (1 row)
参考资料
- PostgreSQL 文档: TABLE
分类
另请参阅
SELECT, VALUES
