tipos - PostgreSQL variable de tabla
tipos de datos postgresql 10 (2)
¿Hay algo como variables de tabla en T-SQL?
En Sql Server se ve así:
DECLARE @ProductTotals TABLE
(
ProductID int,
Revenue money
)
Luego en el procedimiento puedo:
INSERT INTO @ProductTotals (ProductID, Revenue)
SELECT ProductID, SUM(UnitPrice * Quantity)
FROM [Order Details]
GROUP BY ProductID
Y manipular con esta variable como una tabla ordinaria.
Aquí está la descripción: http://odetocode.com/Articles/365.aspx
Como comentó @Clodoaldo : use una tabla temporal en PostgreSQL. Para su ejemplo:
CREATE TEMP TABLE product_totals (
product_id int
, revenue money
);
Más información en el manual sobre CREATE TABLE
donde puede encontrar esta cotización:
Si se especifica, la tabla se crea como una tabla temporal. Las tablas temporales se eliminan automáticamente al final de una sesión u, opcionalmente, al final de la transacción actual (consulte ON COMMIT a continuación). Las tablas permanentes existentes con el mismo nombre no son visibles para la sesión actual mientras que la tabla temporal existe, a menos que se haga referencia a ellas con nombres calificados por el esquema. Todos los índices creados en una tabla temporal también son automáticamente temporales.
Las tablas no registradas son una característica relacionada de PostgreSQL 9.1. Guardan las escrituras en el disco al no escribir en WAL . Aquí hay una discusión de las características de Robert Haas .
Aparte, con respecto al tipo de datos de money
:
Usted puede arraigar de tipo compuesto en su lugar
CREATE TABLE xx(a int, b int);
CREATE OR REPLACE FUNCTION bubu()
RETURNS void AS $$
DECLARE _x xx[];
BEGIN
_x := ARRAY(SELECT xx FROM xx);
RAISE NOTICE ''_x=%'', _x;
...