From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | celati Laurent <laurent(dot)celati(at)gmail(dot)com> |
Cc: | pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>, pgsql-fr-generale-owner(at)lists(dot)postgresql(dot)org |
Subject: | Re: Déplacement massif de tous les éléments vers un autre schema ? |
Date: | 2023-02-28 15:08:11 |
Message-ID: | CAECtzeXXL8wi3TCwjfHAXLeTEJ6-jE+FPRRGDoi71RcK0UMg0w@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Le mar. 28 févr. 2023 à 16:04, celati Laurent <laurent(dot)celati(at)gmail(dot)com> a
écrit :
> Si j'ai bien compris, selon vous, il n'y a pas moyen de déplacer tous les
> indexes et contraintes ? Peut être via ce moyen ? :
> https://wiki.postgresql.org/wiki/Clone_schema
>
>
Non. Quand vous déplacez une table d'un schéma vers un autre, vous déplacez
aussi tous les index et toutes les contraintes de cette table. Quant au
lien que vous donnez, il ne parle pas du tout des index et des contraintes
:)
> Le mar. 28 févr. 2023 à 15:53, Guillaume Lelarge <guillaume(at)lelarge(dot)info>
> a écrit :
>
>> Bonjour,
>>
>> Le mar. 28 févr. 2023 à 15:44, celati Laurent <laurent(dot)celati(at)gmail(dot)com>
>> a écrit :
>>
>>> Bonjour,
>>> Je souhaite trouver un moyen de déplacer 100 tables d'un schema 'A' vers
>>> un schema 'B'. Non seulement les données. Mais également les index, les
>>> clef primaires, contraintes (en quelque sorte INCLUDING ALL). Sauf erreur
>>> de ma part, ce bout de code permettrait de déplacer les données en tant que
>>> tel. Mais comment faire pour déplacer également les index, contraintes,
>>> clef primaire...
>>>
>>>
>> Les index et les contraintes n'étant pas liés à un schéma, la question ne
>> se pose pas :) De ce fait, il n'existe pas de ALTER INDEX SET SCHEMA.
>>
>>
>>> DO
>>> $$
>>> DECLARE
>>> row record;
>>> BEGIN
>>> FOR row IN SELECT tablename FROM pg_tables WHERE schemaname = 'A' --
>>> and other conditions, if needed
>>> LOOP
>>> EXECUTE format('ALTER TABLE A.%I SET SCHEMA [B];',
>>> row.tablename);
>>> END LOOP;
>>> END;
>>> $$;
>>>
>>> Merci.
>>>
>>
>>
>> --
>> Guillaume.
>>
>
--
Guillaume.
From | Date | Subject | |
---|---|---|---|
Next Message | Romain MAZIÈRE | 2023-02-28 16:16:56 | Re: Déplacement massif de tous les éléments vers un autre schema ? |
Previous Message | celati Laurent | 2023-02-28 15:04:20 | Re: Déplacement massif de tous les éléments vers un autre schema ? |