Re: TRUNCATE ONLY with foreign keys and triggers disabled
От | Dimitrios Apostolou |
---|---|
Тема | Re: TRUNCATE ONLY with foreign keys and triggers disabled |
Дата | |
Msg-id | 40e61dac-9903-2d45-0dd5-4d848106e7a0@gmx.net обсуждение исходный текст |
Ответ на | Re: TRUNCATE ONLY with foreign keys and triggers disabled (Adrian Klaver <adrian.klaver@aklaver.com>) |
Список | pgsql-general |
On Mon, 14 Apr 2025, Adrian Klaver wrote: > On 4/14/25 08:20, Dimitrios Apostolou wrote: >> On Mon, 14 Apr 2025, Adrian Klaver wrote: >> >>> On 4/14/25 08:07, Laurenz Albe wrote: >>>> On Mon, 2025-04-14 at 17:05 +0200, Dimitrios Apostolou wrote: >>>>> I meant the *referencing* table has just been >>>>> populated. I'm trying to delete the *referenced* table and I get the >>>>> error. >>>> >>>> That would break the foreign key constraint, right? >>>> PostgreSQL cannot allow that. >>> >>> I believe the OP is disabling all triggers including system ones if I >>> follow >>> correctly and possibly running a foul of; >>> >>> https://www.postgresql.org/docs/current/sql-altertable.html >>> >>> " Disabling or enabling internally generated constraint triggers requires >>> superuser privileges; it should be done with caution since of course the >>> integrity of the constraint cannot be guaranteed if the triggers are not >>> executed." >> >> Exactly that. I learned this from pg_restore --disable-triggers, as a way >> to speed-up insertion. >> >> Since triggers are disabled, I assumed that postgresql shouldn't care >> about referential integrity in TRUNCATE. > > I'm going to say the depends on order of execution. Without seeing the code > changes you have done there is really no way to determine what the exact > issue is. Sent patch here: https://www.postgresql.org/message-id/flat/4589087c-ec6f-4407-1f82-6cb2e681ac0a%40gmx.net The reason I first sent here (pgsql-general) is that I wondered if the error is just an implementation shortcoming without deeper reasons, thus it would be achievable to try to fix it myself. Dimitris
В списке pgsql-general по дате отправления: