bonjour ,
j'ai toutes mes tables dans le schéma public ,est-il possible de créer un nouveau schéma et d'y importer toutes les tables?
bonjour ,
j'ai toutes mes tables dans le schéma public ,est-il possible de créer un nouveau schéma et d'y importer toutes les tables?
PostGreSQL ayant commis la même erreur qu'Oracle (en fait les développeurs du moteur PG ont décider de singer Oracle) il n'est pas possible de transférer certains objets d'un schma dans un autre comme c'est le cas de la commande :
Néanmoins, vous pouvez changer le nom d'un schéma en faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER SCHEMA mon_schema TRANSFER mon_objet;
Cela dit, si vous avez mis en place une sécurité via des privilèges cela risque d'être dangereux !
Code : Sélectionner tout - Visualiser dans une fenêtre à part ALTER SCHEMA mon_schema RENAME mon_nouveau_nom
A +
Salut
C'est bien possible de changer de schema...
Vous pouvez utiliser ce code pour boucler sur les tables
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ALTER TABLE ancien_schema.latable SET SCHEMA nouveau_cshema
Mais si c'est l'ensemble des objets, la solution de SQLpro est mieux!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DO $$DECLARE r record; BEGIN FOR r IN select n.nspname , c.relname FROM pg_class c inner JOIN pg_namespace n ON n.oid = c.relnamespace inner join pg_authid a on c.relowner=a.oid WHERE c.relkind = 'r'::"char" and n.nspname='ancine_schema' LOOP begin EXECUTE 'ALTER TABLE ' || r.nspname || '.' || r.relname || 'SET SCHEMA nouveau_schema' ; exception when others then continue; end; END LOOP; END$$;
@+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager