postgresql中的Name关键字

时间:2011-07-25 09:16:09

标签: postgresql

为什么这样做或更好但它代表什么(用现有的表替换表)

select table.name from table

它在哪里记录(postgresql)?

2 个答案:

答案 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上测试。)