From: | Darren Ferguson <darren(at)crystalballinc(dot)com> |
---|---|
To: | Uros Gruber <uros(at)sir-mag(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: don't know how to get SELECT |
Date: | 2002-05-13 17:51:17 |
Message-ID: | Pine.LNX.4.10.10205131348470.8555-100000@thread.crystalballinc.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Use the EXECUTE command.
This allows the execution of dynamic queries
EXECUTE ''UPDATE ''||table||'' SET id = ''||id||''WHERE something =
something'';
This is just an example but it shows how to execute dynamic queries
HTH
Darren Ferguson
On Mon, 13 May 2002, Uros Gruber wrote:
> Hi!
>
> i have some problems with plpgsql. Here is my function
>
>
> create or replace function rm_cat(varchar,int) returns boolean as '
> declare
> table alias for $1;
> id alias for $2;
> data RECORD;
> begin
> ******************************************************************
> SELECT INTO data lft,rgt FROM d_categories WHERE id_category=id;
> ******************************************************************
> IF NOT FOUND THEN
> RAISE EXCEPTION ''id % does not exist'',id;
> return 0;
> end if;
>
> -- deleting the leftmost node does not lower lft for all
> execute ''update '' || quote_ident(table) || '' set level=level-1 where lft > '' || data.lft || ''and rgt < '' || data.rgt || '';'';
> execute ''update '' || quote_ident(table) || '' set lft=lft-1 where lft >= '' || data.lft || '';'';
> execute ''update '' || quote_ident(table) || '' set lft=lft-1 where lft >= '' || data.rgt || '';'';
> execute ''update '' || quote_ident(table) || '' set rgt=rgt-1 where rgt >= '' || data.lft || '';'';
> execute ''update '' || quote_ident(table) || '' set rgt=rgt-1 where rgt >= '' || data.rgt || '';'';
> execute ''delete from '' || quote_ident(table) || '' where id_category = '' || id || '';'';
> return 1;
> end;
> 'language 'plpgsql';
>
>
> My problems is in line wraped with ***. What i want is that
> SELECT have to be dinamyc because i want with an argument to
> saj for what table do this select. I tried many ways and i
> think i don't understand something. Can somebody help me
> solve this.
>
>
>
> --
> bye,
> Uros mailto:uros(dot)gruber(at)sir-mag(dot)com
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
> (send "unregister YourEmailAddressHere" to majordomo(at)postgresql(dot)org)
>
From | Date | Subject | |
---|---|---|---|
Next Message | Darko Prenosil | 2002-05-13 18:12:53 | Re: if exists? |
Previous Message | Joel Burton | 2002-05-13 17:47:03 | Re: time in 7.2 |