Re: [ADMIN] Foreign key

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: [ADMIN] Foreign key
Дата
Msg-id Pine.BSF.4.10.10010031011330.20147-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Foreign key  ("Paulo Roberto Siqueira" <paulo.siqueira@usa.net>)
Список pgsql-novice
On Tue, 3 Oct 2000, Paulo Roberto Siqueira wrote:

>     This list have helped me a lot. That's why I'm here again asking for more
> information.
>     I've read all the documentation, but I need more information on how
> postgres implements foreign key on version 7.0.2. I know it uses triggers.
> More information is needed though. I want to know the mechanism, when it
> will change to real foreign key etc.

The mechanics are that a foreign key constraint definition is turned into
three constraint triggers (more on this in a second), one on the foreign
key table, two on the primary key table.  The one on the foreign key table
is an after update/insert trigger that checks that the row matches.  The
two on the primary key table are after delete and update (respectively)
and either implement a check to make sure the row isn't referenced (no
action/restrict) or implement the referential action (on delete ...
on cascade ...)  The checks and actions are all implemented in C using
SPI by building appropriate queries.

Constraint triggers are a little different from normal triggers because
there is some additional stuff to handle the relationship between the
tables and a deferred trigger queue to handle deferrable constraints.

I'm not sure what you mean by real foreign key above, so I'm not sure
how to answer the last bit.


В списке pgsql-novice по дате отправления:

Предыдущее
От: "Steve Ackerman"
Дата:
Сообщение: installation options
Следующее
От: ""
Дата:
Сообщение: Simple Insert Function Syntax