Variables y %TYPE en SQL
Declara tipos a mano, o toma prestado el de una columna para que nunca diverjan.
-- DECLARE types by hand, or borrow a column's type with %TYPE.
DO $$
DECLARE
kayak_price products.price%TYPE;
markup CONSTANT NUMERIC := 1.15;
tag TEXT := 'with markup';
BEGIN
SELECT price
INTO kayak_price
FROM products
WHERE sku = 'KAYAK-17';
RAISE NOTICE 'kayak %: %', tag, round(kayak_price * markup, 2);
END;
$$;
Cómo funciona
products.price%TYPEcopia el tipo de la columna — cambia la tabla y la variable la sigue.CONSTANT ... := 1.15fija el margen; reasignarlo sería un error.:=es la asignación de PL/pgSQL, distinta del=de comparación de SQL.
Palabras clave y builtins usados aquí
BEGINDECLAREDOENDFROMINTONUMERICSELECTTEXTTYPEWHERE
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 317
- Tokens
- 59
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 54 segundos.
Paso 2 de 4 en Bloques PL/pgSQL; paso 6 de 23 en Procedimientos almacenados de PostgreSQL.