On 2/12/25 12:57 PM, Marcelo Fernandes wrote:
> Hi folks,
>
> I have a scenario where I need to swap an original table with a copy of that
> table.
>
> The copy has an exclusion constraint that the original does not have. The main
> challenge is to ensure that the swap does not break any existing foreign keys
> to the original table and handles the associated TOAST tables correctly.
>
> Both tables are fairly large and exist in a system where there are no
> maintenance time windows where the application is shut down.
This needs more information:
1) Postgres version.
2) The table definition.
3) The exclusion constraint definition.
4) Definition of what 'fairly large' is.
5) How is the application interfacing with the database?
>
> My key questions are:
>
> - What is the best process for swapping the original table with the copy in
> such a way that the foreign key relations are preserved?
>
> - Are there any special considerations for managing the TOAST tables during
> this swap?
>
> - Should I perform this operation in multiple steps, or is there a
> straightforward way to achieve this atomically?
>
> - Are there any risks of potential issues I should be aware of when doing this
> swap? Specifically related to foreign key integrity and TOAST data?
>
> Thank you!
> - Marcelo
>
>
--
Adrian Klaver
adrian.klaver@aklaver.com