Re: question: foreign key constraints and AccessExclusive locks
От | Jon Nelson |
---|---|
Тема | Re: question: foreign key constraints and AccessExclusive locks |
Дата | |
Msg-id | CAKuK5J1STudDTewSZXW5LqtFEcTu2nkUhNtA=cd8gxYiqmvYkg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: question: foreign key constraints and AccessExclusive locks (Simon Riggs <simon@2ndQuadrant.com>) |
Ответы |
Re: question: foreign key constraints and AccessExclusive locks
|
Список | pgsql-hackers |
On Sun, Jan 6, 2013 at 4:14 AM, Simon Riggs <simon@2ndquadrant.com> wrote: > On 6 January 2013 03:08, Jon Nelson <jnelson+pgsql@jamponi.net> wrote: >> When adding a foreign key constraint on tableA which references >> tableB, why is an AccessExclusive lock on tableB necessary? Wouldn't a >> lock that prevents writes be sufficient, or does PostgreSQL have to >> modify *both* tables in some fashion? I'm using PostgreSQL 8.4 on >> Linux. > > FKs are enforced by triggers currently. Adding triggers requires > AccessExclusiveLock because of catalog visibility issues; you are > right that a lower lock is eventually possible. > > SQLStandard requires the check to be symmetrical, so adding FKs > requires a trigger on each table and so an AEL is placed on tableB. I've read and re-read this a few times, and I think I understand. However, could you clarify "you are right that a lower lock is eventually possible" for me, please? -- Jon
В списке pgsql-hackers по дате отправления: