view definition

Hallo

wenn ich views definiere dann gebe ich meisten oben die spaltennamen an

wenn man diese weglassen würde dann würde es ja die spaltennamen einfach von den spaltennamen in der query übernehmen

wenn ich das bei Oracle mache und mir dann das ddl ansehe dann ist das meisten

create or replace view…
(
)
as select…


in pgadmin gibt es mir dann nur

create or replace view
as select

wieso zeigt es mir die spaltennamen nicht an , wenn ich mir das create script anzeigen lasse

wenn ich ja dann so die view auf einem anderen DB anlegen würde, dann kann es ja sein dass die spaltennamen nicht mehr richtig sind

kann man das in pgadmin einstellen dass es mir die spaltennamen auch im ddl script anzeigt?

Was ist denn genau Dein Problem jetzt? Es gibt eine Funktion pg_get_viewdef(), die das macht, was der Name verspricht.

Wenn du andere Namen im View als in der Tabelle haben willst, musst du sie per AS angeben. Oder was meinst du?

CU Uwe

Weil diese Namen, so nicht in dieser abgespeichert werden.

wenn ich ja dann so die view auf einem anderen DB anlegen würde, dann kann es ja sein dass die spaltennamen nicht mehr richtig sind

Doch, weil in der View Definition die Postgres ausgibt ein entsprechender alias verwendet wird:

psql (9.4.1)
Type "help" for help.

postgres=> create table x1 (id integer);
CREATE TABLE
postgres=> create view v1 (nr) as select id from x1;
CREATE VIEW
postgres=> select pg_get_viewdef('v1');
   pg_get_viewdef
---------------------
  SELECT x1.id AS nr
    FROM x1;
(1 row)

postgres=>