From: | Erik Thiele <erik(at)thiele-hydraulik(dot)de> |
---|---|
To: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
Cc: | achill(at)matrix(dot)gatewaynet(dot)com, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: special integrity constraints |
Date: | 2004-03-22 16:25:44 |
Message-ID: | 20040322172544.0a9b34d4.erik@thiele-hydraulik.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-docs pgsql-sql |
On Mon, 22 Mar 2004 06:21:28 -0800 (PST)
Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> wrote:
>
> On Mon, 22 Mar 2004, Erik Thiele wrote:
>
> > On Mon, 22 Mar 2004 12:13:29 +0200 (EET)
> > Achilleus Mantzios <achill(at)matrix(dot)gatewaynet(dot)com> wrote:
> >
> > > O kyrios Erik Thiele egrapse stis Mar 22, 2004 :
> > >
> > > Did you check out the DEFERRABLE option on the constraint?
> > >
> >
> > DEFERRABLE
> > NOT DEFERRABLE
> >
> > This controls whether the constraint can be deferred. A constraint that
> > is not deferrable will be checked immediately after every command.
> > Checking of constraints that are deferrable may be postponed until the
> > end of the transaction (using the SET CONSTRAINTS command). NOT
> > DEFERRABLE is the default.
> >
> > !!!! Only foreign key constraints currently accept
> > this clause. All other constraint types are not deferrable. !!!!
> >
> > my constraint is not a foreign key constraint....
>
> However, foreign keys are implemented using "constraint triggers". They're
> really not documented much (because they're a not really separately
> supported implementation detail), but you can theoretically make
> triggers that are deferred to immediately before commit time.
could you paste some code?
create table a (x integer);
create or replace function alwaysfail() returns opaque as '
begin
raise exception ''no no i dont want to'';
end;
' language 'plpgsql';
MAGIC COMMAND INSERT HERE, INSTALL CALL OF alwaysfail() ON
MODIFICATION OF TABLE a AT COMMIT TIME;
begin transaction;
insert into a values(4);
(ok)
insert into a values(10);
(ok)
commit;
(no no i dont want to)
is that possible?
cu
erik
--
Erik Thiele
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2004-03-22 16:34:54 | Re: special integrity constraints |
Previous Message | Tom Lane | 2004-03-22 16:21:23 | Re: CREATE TABLE LIKE |
From | Date | Subject | |
---|---|---|---|
Next Message | Stephan Szabo | 2004-03-22 16:34:54 | Re: special integrity constraints |
Previous Message | Erik Thiele | 2004-03-22 16:21:21 | Re: special integrity constraints |