SnowConvert AI - PostgreSQL - CREATE VIEW¶
Traduction de PostgreSQL vers Snowflake
S’applique à :¶
PostgreSQL
Greenplum
Netezza
Description¶
Cette commande crée une vue dans une base de données, qui est exécutée chaque fois que la vue est référencée dans une requête.
Pour plus d’informations, voir la documentation CREATE VIEW.
Grammar 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 ]
Exemples de code¶
[OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE]¶
Hint
Cette syntaxe est entièrement prise en charge par Snowflake.
Code d’entrée :¶
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;
Code de sortie :¶
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¶
Cette clause WITH CHECK CLAUSE sur une vue impose à toute donnée insérée ou mise à jour via la vue de remplir les conditions de définition de la vue. LOCAL vérifie uniquement les conditions de la vue actuelle, tandis que CASCADED vérifie les conditions de la vue et de toutes les vues sous-jacentes. Cela empêche la création de lignes invisibles à travers la vue et qui ne peuvent pas être utilisées avec des vues récursives.
Danger
Cette syntaxe n’est pas prise en charge par Snowflake.
Code d’entrée :¶
PostgreSQL¶
CREATE VIEW updatable_products AS
SELECT id, name, price
FROM products
WHERE price > 0
WITH LOCAL CHECK OPTION;
Code de sortie :¶
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¶
Ce WITH PARAMETERS OPTIONS permet de définir des propriétés facultatives pour la vue, telles que la manière dont les modifications de la vue sont vérifiées (check_option) et s’il faut appliquer la sécurité au niveau des lignes (security_barrier).
Danger
Cette syntaxe n’est pas prise en charge par Snowflake.
Code d’entrée :¶
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;
Code de sortie :¶
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
Cette syntaxe est entièrement prise en charge par Snowflake.
Code d’entrée :¶
PostgreSQL¶
CREATE VIEW numbers_view (number_1) AS
VALUES (1,2), (2,2), (3,2), (4,2), (5,2);
Code de sortie :¶
Snowflake¶
CREATE VIEW numbers_view
AS
SELECT
*
FROM
(
VALUES (1,2), (2,2), (3,2), (4,2), (5,2)
) AS numbers_view (
number_1
);