Renommer un schéma

ALTER SCHEMA %ancien_nom_schema RENAME TO %nouveau_nom_schema ;

ou

UPDATE z_asgard.gestion_schema_usr SET nom_schema = '%nouveau_nom_schema' WHERE nom_schema = '%ancien_nom_schema' ;

Lorsque le nom d’un schéma est modifié via une commande ALTER SCHEMA … RENAME, ASGARD met à jour en conséquence la table de gestion[1] avec le nouveau nom du schéma.

Réciproquement, un utilisateur peut renommer un schéma en changeant la valeur du champ nom_schema dans la vue utilisateur[2].

Ces deux méthodes sont parfaitement équivalentes.

Remarque

Quel que soit la méthode utilisée, le rôle de l'utilisateur doit être membre du rôle producteur[3] du schéma et disposer du privilège CREATE sur la base, directement ou par héritage de rôles de groupe dont il est membre.

g_admin[4] et les rôles super-utilisateurs remplissent nativement ces conditions. Pour les autres rôles, le privilège CREATE devra être conféré explicitement par l'administrateur, ainsi que l'appartenance au rôle producteur.

Exemple

Modification du nom du schéma w_snow, renommé en w_jon_snow.

Avec une commande classique :

1
2
ALTER SCHEMA w_snow RENAME TO w_jon_snow ;
1
2
NOTICE: ... Le nom du schéma w_jon_snow a été mis à jour dans la table de gestion.
3
ALTER SCHEMA 

Par la table de gestion :

1
2
UPDATE z_asgard.gestion_schema_usr
3
    SET nom_schema = 'w_jon_snow'
4
    WHERE nom_schema = 'w_snow' ;
1
2
NOTICE: ... Le schéma w_jon_snow a été renommé.
3
UPDATE 1