/* \i 'H:\\Linguaggi_1\\PostgreSQL\\Prove4B_Viste_CreaView.sql' */


/* VISTE. */

\c prove4

CREATE VIEW VISTA1(IdeTabePrinci, N, IdeTabeVinco) AS (
    SELECT TABE_PRINCI.*, TABE_VINCO.IdeTabeVinco
    FROM TABE_PRINCI JOIN TABE_VINCO ON TABE_PRINCI.IdeTabePrinci = TABE_VINCO.IdeTabePrinci
);
/* In caso di esecuzione ripetuta, c'e`
ERRORE:  la relazione "vista" esiste già
*/

\qecho '\nVista VISTA1'
SELECT *
FROM VISTA1;

CREATE TEMP VIEW VISTA2_TEMPORANEA(IdeTabePrinci, N, IdeTabeVinco) AS (
    SELECT TABE_PRINCI.*, TABE_VINCO.IdeTabeVinco
    FROM TABE_PRINCI JOIN TABE_VINCO ON TABE_PRINCI.IdeTabePrinci = TABE_VINCO.IdeTabePrinci
);
/* Anche in caso di esecuzione ripetuta, non ci sono errori. */

\qecho '\nVista VISTA2_TEMPORANEA'
SELECT *
FROM VISTA2_TEMPORANEA;

\dv

INSERT INTO TABE_PRINCI VALUES ('F', 11);
INSERT INTO TABE_VINCO VALUES (5, 'F');
INSERT INTO TABE_VINCO VALUES (6, 'B');

\qecho '\nVista VISTA1'
SELECT *
FROM VISTA1;

\qecho 'Vista VISTA2_TEMPORANEA'
SELECT *
FROM VISTA2_TEMPORANEA;
