ALTER DATABASE

La commande ALTER DATABASE permet de modifier les propriétés d'une base de données, par exemple le jeu de caractères par défaut, le nom, le schéma par défaut, le propriétaire de la base de données ou la collecte de données d'historique pour la base de données.

Syntaxe

Syntaxe de modification d'une base de données :
ALTER DATABASE <db_name> [ OWNER TO <user> ] [ RENAME TO <new_db_name> ] 
  [ SET DEFAULT SCHEMA <schema_name> ] [ SET DEFAULT CHARACTER SET LATIN9 ] ]
  [ COLLECT HISTORY {ON|OFF|DEFAULT} ] [ DATA_VERSION_RETENTION_TIME <number-of-days> NOCASCADE ]
  [GROOM BACKUPSET {<backupset>|DEFAULT}] [LOCK FOR UPDATE] [UNLOCK]

Entrées

La commande ALTER DATABASE dispose des entrées suivantes :
Tableau 1. Entrées ALTER DATABASE
Entrée Descriptif
<nom_base_de_données> Nom de la base de données.
PROPRIÉTAIRE Le nom du nouveau propriétaire de la base de données.
Renommer en Le nouveau nom de la base de données.
DÉFINIR LE SCHÉMA PAR DÉFAUT Schéma par défaut pour les utilisateurs qui se connectent à la base de données. Si vous modifiez le schéma par défaut, les utilisateurs qui ont hérité de l'accès au schéma par défaut précédent perdent l'accès à ce schéma et héritent de l'accès au nouveau schéma. Les utilisateurs n'ont plus accès à l'ancien schéma par défaut, sauf si l'accès leur a été explicitement accordé.
DÉFINIR LE JEU DE CARACTÈRES PAR DÉFAUT Définissez le jeu de caractères par défaut sur LATIN9 pour pouvoir comparer, joindre ou extraire des données de classe char ou nchar.
RECUEILLIR L'HISTOIRE Indique si les données d'historique doivent être collectées pour les sessions attachées à cette base de données.
Activé
L'historique n'est collecté que si l'utilisateur est membre d'au moins un groupe pour lequel COLLECT HISTORY est activé.
DÉSACTIVÉ
L'historique n'est pas collecté pour la base de données.
DEFAULT
L'historique est collecté pour la base de données uniquement si l'utilisateur est membre d'au moins un groupe pour lequel COLLECT HISTORY est défini sur ON et si l'un des critères suivants s'applique :
  • L'utilisateur n'est membre d'aucun groupe d'utilisateurs.
  • Tous les groupes d'utilisateurs dont l'utilisateur est membre ont COLLECT HISTORY réglé sur DEFAULT.
  • L'utilisateur est membre d'au moins un groupe d'utilisateurs pour lequel COLLECTIONNER L'HISTOIRE est activé.
TEMPS DE CONSERVATION DES DONNÉES

Met à jour la valeur de DATA_VERSION_RETENTION_TIME pour la base de données spécifiée. La nouvelle valeur n'a aucun impact sur les schémas et les tables existants dans la base de données. Mais cette valeur détermine la valeur par défaut héritée par une commande CREATE SCHEMA ultérieure dans la base de données qui ne spécifie pas explicitement cette propriété.

La valeur maximale autorisée est de 92 jours, ce qui correspond au nombre maximal de jours d'un trimestre civil.

MARIÉ BACKUPSET

Si la valeur est DEFAULT, la commande GROOM TABLE détermine automatiquement le jeu de sauvegarde par défaut pour la base de données de la table.

S'il est défini sur une chaîne backupsetid spécifique, GROOM TABLE utilise le jeu de sauvegarde spécifié comme jeu de sauvegarde par défaut pour la base de données de la table.

VERROUILLAGE POUR MISE À JOUR Suspendre toute écriture dans la base de données.
UNLOCK Déverrouille la base de données.

Sorties

La commande ALTER DATABASE produit les résultats suivants :
Tableau 2. Sorties ALTER DATABASE
Sortie Descriptif
ALTER DATABASE La commande a été exécutée avec succès.
ERROR: ALTER DATABASE: database "db1" is being accessed by other users La base de données est utilisée par d'autres utilisateurs.

Droits

Vous devez être l'utilisateur admin, le propriétaire de la base de données, ou votre compte doit avoir le privilège Alter pour la base de données ou pour la classe d'objets Database. Pour modifier le propriétaire de la base de données ou le schéma par défaut, vous devez disposer du privilège Liste pour cet utilisateur ou ce schéma.

Utilisation

Des exemples d'utilisation sont présentés ci-dessous :
  • Modifier le jeu de caractères par défaut pour la base de données " emp
    MYDB.SCH1(USER)=> ALTER DATABASE emp SET DEFAULT 
    CHARACTER SET LATIN9;
  • Modifier le propriétaire de la base de données " emp
    MYDB.SCH1(USER)=> ALTER DATABASE emp OWNER TO admin3;
  • Renommer la base de données " emp
    MYDB.SCH1(USER)=> ALTER DATABASE emp RENAME TO employees;
  • Verrouiller la base de données 'emp pour suspendre toute écriture :
    MYDB.SCH1(USER)=> ALTER DATABASE emp lock for update;
  • Déverrouiller la base de données " emp
    MYDB.SCH1(USER)=> ALTER DATABASE emp unlock;