ALTER
La commande ALTER permet de modifier un objet.
ALTER TABLE permet par exemple de modifier la définition d'une table. Par exemple pour ajouter une nouvelle colonne ou réaliser une modification dans le typage d'un champ avec ALTER TYPE.
A noter que dans certains cas le transtypage ne peut être automatique il faut alors utiliser une clause USING permettant d'expliciter la conversion par une expression.
Méthode : Exercice guidé
Nous souhaitons transformer le type de la colonne importance de production.route_xy2 (base droitXX) de VARCHAR(10) en INTEGER...
Il faut cependant noter que cette colonne contient également 'NC' lorsque l'attribut n'est pas rempli. Nous souhaitons mettre 0 lorsque l'attribut n'est pas connu.
la commande
ALTER TABLE production.route_xy2 ALTER COLUMN numero TYPE integer;
renvoi un message d'erreur indiquant d'utiliser une expression avec USING.
essayez donc :
ALTER TABLE production.route_xy2 ALTER COLUMN importance TYPE integer USING (translate(importance, 'NC', '0')::integer);
USING permet de préciser l'expression renvoyant un integer.
Nous utilisons ici la fonction translate pour remplacer 'NC' par '0'.
ALTER VIEW permet de modifier la définition d'une vue.
Modification d'un table sous DBManager
Le menu Table → editer Table
de DBManager permet des modifications interactives :

exemple ‘éditer une colonne' permet le transtypage.
