Re: nested if , and how to trigger....

From: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
To: Muhammad Rusydi <rusydi(at)cbn(dot)net(dot)id>
Cc: postgres general <pgsql-general(at)postgresql(dot)org>
Subject: Re: nested if , and how to trigger....
Date: 2001-05-06 01:30:17
Message-ID: Pine.BSF.4.21.0105051823180.69942-100000@megazone23.bigpanda.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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)

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2001-05-06 04:28:35 Re: Re: a primer on trigger?
Previous Message Morten Primdahl 2001-05-06 00:59:31 Re: Problems w. SERIAL