为什么这样做或更好但它代表什么(用现有的表替换表)
select table.name from table
它在哪里记录(postgresql)?
答案 0 :(得分:3)
select table.name from table
相当于
select name(table) from table
,因为name
是一种类型,相当于
select cast(table as name) from table
第一个table
是一个包含相应表中所有列的行变量,因此您将获得该行的文本表示。
这不是直接记录的,因为它是几个不起眼的功能的组合(一些可追溯到PostQUEL)。事实上,PostgreSQL 9.1中不允许这种用法(参见“Casting”下的release notes)。
答案 1 :(得分:1)
名称类型记录在字符串类型中。在系统目录或内部的部分中记录了隐藏的列(在我的头顶)。
您可以在pg_attribute中看到隐藏的列。他们的数字是负面的:
select attum, attname
from pg_attribute
where attrelid = 'yourtable'::regclass
那应该显示xmin,xmax,ctid,oid(如适用)等。这可能会产生名称吗? (我不能在iPad上测试。)