SnowConvert AI – PostgreSQL – CREATE VIEW

Übersetzung von PostgreSQL in Snowflake

Gilt für:

  • PostgreSQL

  • Greenplum

  • Netezza

Beschreibung

Dieser Befehl erstellt eine Ansicht in einer Datenbank, die jedes Mal ausgeführt wird, wenn die Ansicht in einer Abfrage referenziert wird.

Weitere Informationen dazu finden Sie in der Dokumentation zu CREATE VIEW.

Grammatikalische Syntax

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

Codebeispiele

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

Hinweis

Diese Syntax wird in Snowflake vollständig unterstützt.

Eingabecode:

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

Ausgabecode:

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

Diese WITH CHECK CLAUSE-Klausel für eine Ansicht erzwingt, dass alle über die Ansicht eingefügten oder aktualisierten Daten die definierenden Bedingungen der Ansicht erfüllen müssen. LOCAL prüft nur die Bedingungen der aktuellen Ansicht, während CASCADED die Bedingungen der Ansicht und aller zugrunde liegenden Ansichten prüft. Sie verhindert das Erstellen von Zeilen, die durch die Ansicht nicht sichtbar sind, und kann nicht mit rekursiven Ansichten verwendet werden.

Gefahr

Diese Syntax wird in Snowflake nicht unterstützt.

Eingabecode:

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

Ausgabecode:

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

Diese WITH PARAMETERS OPTIONS-Klausel ermöglicht das Festlegen optionaler Eigenschaften für die Ansicht, z. B. wie Änderungen über die Ansicht geprüft werden (check_option) und ob Sicherheit auf Zeilenebene erzwungen werden soll (security_sperr).

Gefahr

Diese Syntax wird in Snowflake nicht unterstützt.

Eingabecode:

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

Ausgabecode:

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

Hinweis

Diese Syntax wird in Snowflake vollständig unterstützt.

Eingabecode:

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

Ausgabecode:

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