Try this function:
create function a(int,text) returns text as
'begin update ibs_br_all_total_units set first_name = $2 where pin =
$1; RETURN $2;end; ' language 'plpgsql';
create table ibs_subscriber( pin int, first_name text);
insert into ibs_subscriber values(1,'pippo');
insert into ibs_subscriber values(3,'pluto');
create table ibs_br_all_total_units( pin int, first_name text);
insert into ibs_br_all_total_units values(1,'text');
insert into ibs_br_all_total_units values(2,'text');
insert into ibs_br_all_total_units values(3,'text');
select * from ibs_subscriber ;
pin|first_name
---+---------- 1|pippo 3|pluto
(2 rows)
select * from ibs_br_all_total_units ;
pin|first_name
---+---------- 1|text 2|text 3|text
(3 rows)
select a(pin,first_name) from ibs_subscriber ;
a
-----
pippo
pluto
(2 rows)
select * from ibs_br_all_total_units ;
pin|first_name
---+---------- 2|text 1|pippo 3|pluto
(3 rows)
José
Chairudin Sentosa ha scritto:
> José Soares wrote:
>
> > Chairudin Sentosa ha scritto:
> >
> > > Hi,
> > >
> > > I am using postgresql 6.5 snapshot.
> > > I can not update.
> > > Could anyone tell me what's wrong, please?
> > >
> > > update ibs_br_all_total_units tr set first_name=
> > > (select first_name from ibs_subscriber tn
> > > where tr.pin = tn.pin
> > > );
> > >
> > > "/tmp/psql.60000.13342" 4 lines, 117 characters
> > > ERROR: parser: syntax error at or near "tr"
> > >
> >
> > AFAIK PostgreSQL doesn't allow subselects on UPDATE.
> >
> > José
>
> Hi Jose,
>
> How should I do it in PostgreSQL?
>
> Thanks
>
> Regards,
> Chai