Re: special integrity constraints
От | Stephan Szabo |
---|---|
Тема | Re: special integrity constraints |
Дата | |
Msg-id | 20040322083110.X58785@megazone.bigpanda.com обсуждение исходный текст |
Ответ на | Re: special integrity constraints (Erik Thiele <erik@thiele-hydraulik.de>) |
Список | pgsql-sql |
On Mon, 22 Mar 2004, Erik Thiele wrote: > On Mon, 22 Mar 2004 06:21:28 -0800 (PST) > Stephan Szabo <sszabo@megazone.bigpanda.com> wrote: > > > > > On Mon, 22 Mar 2004, Erik Thiele wrote: > > > > 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; create constraint trigger a_foo1 after insert or update or delete on a initially deferred for each row execute procedure alwaysfail(); Like I said, it's an implementation detail, so it's not 100% guaranteed to exist forever, but it's almost certain to last until we have deferrable non-fk constraints. It does also obey set constraints so, set constraints a_foo1 immediate does the checks immediately just as if it were a deferred constraint.
В списке pgsql-sql по дате отправления: