Select into

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Select into
Date: 2007-12-15 23:21:50
Message-ID: 4764618E.7070608@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola a todos.

Por razones (casualidad) no vienen al caso, he descubierto que haciendo:

select campo into tabla from ....

crea una nueva tabla con los resultados de dicha consulta.

¿Es una tabla temporal?, ¿en que casos lo usais?.

Me ha entrado la duda pues el otro día me pusieron el ejemplo de una
funcion en el que había un select into.

CREATE OR REPLACE FUNCTION sesion_valida(text) RETURNS integer AS
$$
DECLARE
la_sesion ALIAS FOR $1;
duracion interval;
user_id integer;
BEGIN
duracion = '10 min'::interval;
-- Antes de otra cosa, vaciamos todas las sesiones expiradas
DELETE FROM sesion WHERE ultimo_uso+duracion < now();
-- Buscamos a qué usuario pertenece esta sesión
SELECT INTO user_id id_usuario FROM sesion WHERE sesion = la_sesion;
IF NOT FOUND THEN
RETURN NULL;
END IF;
UPDATE sesion SET ultimo_uso=now() WHERE sesion = la_sesion;
RETURN user_id;
END;
$$ LANGUAGE 'plpgsql';

Supongo que en este caso lo que se hace es almacenar el resultado del
select en una varible. ¿Es asi?. Lo digo pues haciendo un select de ese
modo fuera de una función no funciona.

SELECT into nomb nombre from clientes limit 1;
ERROR: error de sintaxis en o cerca de «into»
LINE 1: SELECT into nomb nombre from clientes limit 1;

- --

< ¡¡Nos vemos!! >
----------------------------
\
\
.::!!!!!!!:.
.!!!!!:. .:!!!!!!!!!!!!
~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
:$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
$$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
$$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
"*$bd$$$$ '*$$$$$$$$$$$o+#"
"""" """""""
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHZGGOK7lGsMchFswRAoV0AJ9vZpGB0Jn5cC4MItvBzeXJxPH37QCdFxlv
xjjNf8UcMFoM0fQCLmyftnY=
=64W3
-----END PGP SIGNATURE-----

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodriguez Fernando 2007-12-17 11:03:02 Re: No muestra elresultado de simple select
Previous Message Mauro A. Morales M. 2007-12-15 22:24:46 Re: Dudas de principiante. Relaciones entre tablas