SnowConvert AI - PostgreSQL - CREATE VIEW

PostgreSQL에서 Snowflake로의 변환

적용 대상

  • PostgreSQL

  • Greenplum

  • Netezza

설명

이 명령은 쿼리에서 뷰가 참조될 때마다 실행되는 뷰를 데이터베이스에 만듭니다.

자세한 내용은 CREATE VIEW 설명서를 참조하세요.

문법 구문

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

코드 예제

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

Hint

이 구문은 Snowflake에서 완벽하게 지원됩니다.

입력 코드:

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

출력 코드:

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

뷰의 이 WITH CHECK CLAUSE 절은 뷰를 통해 삽입되거나 업데이트된 모든 데이터가 뷰의 정의 조건을 충족하도록 적용합니다. LOCAL은 현재 뷰의 조건만 확인하지만 CASCADED는 뷰와 모든 기본 뷰의 조건을 확인합니다. 이 절은 뷰를 통해 보이지 않고 재귀 뷰와 함께 사용할 수 없는 행이 생성되는 것을 방지합니다.

위험

이 구문은 Snowflake에서 지원되지 않습니다.

입력 코드:

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

출력 코드:

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

이 WITH PARAMETERS OPTIONS를 사용하면 뷰에 대해 뷰를 통한 수정 사항을 확인하는 방법(check_option) 및 행 수준 보안 적용 여부(security_barrier)와 같은 선택적 속성을 설정할 수 있습니다.

위험

이 구문은 Snowflake에서 지원되지 않습니다.

입력 코드:

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

출력 코드:

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

Hint

이 구문은 Snowflake에서 완벽하게 지원됩니다.

입력 코드:

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

출력 코드:

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