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 по дате отправления: