Re: nested if , and how to trigger.... - Mailing list pgsql-general

From Ian Harding
Subject Re: nested if , and how to trigger....
Date
Msg-id 3AF4E11A.6E777282@pakrat.com
Whole thread Raw
In response to Re: nested if , and how to trigger....  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
List pgsql-general
I think the question was whether a function can be called from within a
function.  I sure hope so, although I don't know...

Ian

Stephan Szabo wrote:

> On Sun, 6 May 2001, Muhammad Rusydi wrote:
>
> > Hi,
> > can we do nested if in function ? would you give me some example?
>
> In what context?  In plpgsql, you can nest if's pretty normally:
> create function f() returns int4 as '
> begin
>  if (1=1) then
>   if (1=0) then
>    raise exception ''1=0'';
>   else
>    raise notice ''1!=0'';
>   end if;
>  else
>   raise exception ''1!=1'';
>  end if;
>  return 0;
> end;' language 'plpgsql';
>
> > second, if i've create table like this:
> >
> > create table tb (
> > code varchar(4),
> > classes varchar(6),
> > lecture varchar(4),
> > th int2,
> > day varchar(1),
> > hr varchar(1),
> > room varchar(4),
> > primary key (code,kl,ds));
>
> code,kl,ds?  What are kl and
> ds?
>
> > my questions is how to prevent this record to be insert:
> > code     classes  lecture      th         day   hr     room
> > K021    1tip01   1011        5          1      1      1111
> > K022    1tip01   1011        5          1      1      1111
> >
> > or :
> > code     classes  lecture      th         day   hr     room
> > K021    1tip01   1011        5          1      1      1111
> > K021    1tip01   1012        5          1      1      1111
>
> If code or lecture must always be unique, then use a unique
> constraint.  If you can have duplicate codes if and only
> if the lecture is the same and you can have duplicate lectures
> if and only  if the code is the same, you'll probably need
> to do a before insert/update trigger that checks for you
> (and you'll need to lock the table i think so that you
> can't have two transactions inserting inconsistant data
> that the other can't see due to it not being committed)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly


pgsql-general by date:

Previous
From: mlw
Date:
Subject: Re: Metaphone function attachment
Next
From: Morten Primdahl
Date:
Subject: Problems w. SERIAL