Re: Intentando hacer un insert con un trigger.

From: Pablo Braulio <brulics(at)gmail(dot)com>
To: postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Intentando hacer un insert con un trigger.
Date: 2008-01-17 11:08:34
Message-ID: 478F3732.9020300@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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

Pablo Braulio escribió:
> Solucionado.
>
> Era un error en la declaración de campos en el insert.
>
> create or replace function permisosrecursos() returns trigger as $$
> begin
> insert into permisosrecursos(recurso,grupo) values((select id from
> recursos),new.id);
> return new;
> end;
>
> $$ language plpgsql;
>
> create trigger permisosrecursos after insert on gruposusuarios for each
> row execute procedure permisosrecursos();
>
> Así funciona perfectamente.
>

No. Me equivoco, no funciona.

Lo que pasa es que el "select id from recursos" sólo tiene un valor. Por
eso funciona.

Estoy probando de hacerlo con un bucle, pero no lo consigo.

create or replace function nuevorecurso() returns trigger as $$
declare
nomgrupo integer;
begin
while (nomgrupo= (select id from gruposusuarios))
loop
insert into permisosrecursos(grupo,recurso) values(nomgrupo,new.id);
return new;
end loop;
end;

$$ language plpgsql;

create trigger nuevorecurso after insert on recursos for each row
execute procedure nuevorecurso();

El error sigue siendo el mismo.

INSERT INTO recursos (nombre) values('probar');
ERROR: una subconsulta utilizada como expresión retornó más de un registro
CONTEXT: sentencia SQL: «SELECT ( $1 = (select id from gruposusuarios))»
PL/pgSQL function "nuevorecurso" line 4 at while

¿Alguna idea?.

- --

< ¡¡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

iD8DBQFHjzcxK7lGsMchFswRAhQ0AJ4nU2h3wYE549DTJ+mFL3hHb+3tnQCcCj8c
V7rn0/xmQO9RTAIi5Y+AxfA=
=qsHb
-----END PGP SIGNATURE-----

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis D. García 2008-01-17 11:27:14 Acerca de EnterpriseDB DBA Management Server
Previous Message Pablo Braulio 2008-01-17 10:42:32 Re: Intentando hacer un insert con un trigger.