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 ]
コードの例¶
[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;
出力コード:¶
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;
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;
出力コード:¶
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;
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;
出力コード:¶
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;
VALUES に OPTION¶
Hint
この構文はSnowflakeで完全にサポートされています。
入力コード:¶
PostgreSQL¶
CREATE VIEW numbers_view (number_1) AS
VALUES (1,2), (2,2), (3,2), (4,2), (5,2);
出力コード:¶
Snowflake¶
CREATE VIEW numbers_view
AS
SELECT
*
FROM
(
VALUES (1,2), (2,2), (3,2), (4,2), (5,2)
) AS numbers_view (
number_1
);