SnowConvert AI - PostgreSQL - CREATE VIEW

Tradução de PostgreSQL para Snowflake

Aplica-se a

  • PostgreSQL

  • Greenplum

  • Netezza

Descrição

Este comando cria uma exibição em um banco de dados, que é executado toda vez que a exibição é referenciada em uma consulta.

Para obter mais informações, consulte a documentação CREATE VIEW.

Sintaxe da gramática

CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW <name> [ ( <column_name> [, ...] ) ]
    [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
    AS <query>
    [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
Copy

Exemplos de código

[OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE]

Dica

Essa sintaxe é totalmente compatível com o Snowflake.

Código de entrada:

PostgreSQL
CREATE OR REPLACE VIEW view1 AS
    SELECT
        product_id,
        SUM(quantity) AS sum_quantity
    FROM
        table1
    GROUP BY
        product_id;

CREATE TEMPORARY RECURSIVE VIEW view2 AS
    SELECT
        product_id,
        SUM(quantity) AS sum_quantity
    FROM
        table1
    GROUP BY
        product_id;
Copy

Código de saída:

Snowflake
CREATE OR REPLACE VIEW view1
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "postgresql",  "convertedOn": "05/14/2025",  "domain": "no-domain-provided" }}'
AS
    SELECT
        product_id,
        SUM(quantity) AS sum_quantity
    FROM
table1
    GROUP BY
        product_id;

CREATE TEMPORARY RECURSIVE VIEW view2
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "postgresql",  "convertedOn": "05/14/2025",  "domain": "no-domain-provided" }}'
AS
    SELECT
        product_id,
        SUM(quantity) AS sum_quantity
    FROM
table1
    GROUP BY
        product_id;
Copy

WITH CHECK CLAUSE

Esta cláusula WITH CHECK CLAUSE em uma exibição impõe que qualquer dado inserido ou atualizado por meio da exibição deve satisfazer às condições de definição da exibição. LOCAL verifica apenas as condições da exibição atual, enquanto CASCADED verifica as condições da exibição e de todas as exibições subjacentes. Ela impede a criação de linhas que sejam invisíveis pela exibição e não possam ser usadas com exibições recursivas.

Perigo

Essa sintaxe não é compatível com o Snowflake.

Código de entrada:

PostgreSQL
CREATE VIEW updatable_products AS
    SELECT id, name, price
    FROM products
    WHERE price > 0
WITH LOCAL CHECK OPTION;
Copy

Código de saída:

Snowflake
CREATE VIEW updatable_products
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "postgresql",  "convertedOn": "05/14/2025",  "domain": "no-domain-provided" }}'
AS
    SELECT id, name, price
    FROM
products
    WHERE price > 0;
Copy

WITH PARAMETERS OPTIONS

Esta WITH PARAMETERS OPTIONS permite definir propriedades opcionais para a exibição, por exemplo, como as modificações através da exibição são verificadas (check_option) e se deve ser aplicada a segurança em nível de linha (security_barrier).

Perigo

Essa sintaxe não é compatível com o Snowflake.

Código de entrada:

PostgreSQL
CREATE VIEW large_orders WITH (security_barrier=true, check_option=local) AS
    SELECT order_id, customer_id, total_amount
    FROM orders
    WHERE total_amount > 1000;
Copy

Código de saída:

Snowflake
CREATE VIEW large_orders
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "postgresql",  "convertedOn": "05/14/2025",  "domain": "no-domain-provided" }}'
AS
    SELECT order_id, customer_id, total_amount
    FROM
orders
    WHERE total_amount > 1000;
Copy

VALUES OPTION

Dica

Essa sintaxe é totalmente compatível com o Snowflake.

Código de entrada:

PostgreSQL
CREATE VIEW numbers_view (number_1) AS
    VALUES (1,2), (2,2), (3,2), (4,2), (5,2);
Copy

Código de saída:

Snowflake
CREATE VIEW numbers_view
AS
SELECT
*
FROM
(
        VALUES (1,2), (2,2), (3,2), (4,2), (5,2)
) AS numbers_view (
        number_1
);
Copy