Jeg ved, at dette spørgsmål er lidt gammelt, men måske vil nogen snuble over svaret, og det vil hjælpe dem.
Den rigtige måde at gøre det, du leder efter, er at oprette og bruge en visning. Ja, det vil være lidt kedeligt én gang at skrive alle de nye kolonnenavne ud som aliaser, men hvis der er mange kolonner, er her et trick, du kan bruge til at udnytte PostgreSQL-metadataene til at skrive teksten i visningen ud:
select 'CREATE OR REPLACE VIEW people AS SELECT ' ||
(select string_agg(column_name || ' AS person_' || column_name, ', ')
from information_schema.columns
where table_name = 'person'
group by table_name) ||
' FROM person;';
at køre dette giver:
?column?
-------------------------------------------------------------------------------------------------------------
CREATE OR REPLACE VIEW people AS SELECT last_name AS person_last_name, first_name AS person_first_name FROM person;
1 record(s) selected [Fetch MetaData: 0/ms] [Fetch Data: 0/ms]
[Executed: 4/21/12 2:05:21 PM EDT ] [Execution: 9/ms]
du kan derefter kopiere og udføre resultaterne og voila:
select * from people;
person_last_name person_first_name
------------------- --------------------
Melvoin Wendy
Coleman Lisa
2 record(s) selected [Fetch MetaData: 1/ms] [Fetch Data: 0/ms]