CommencezCommencez gratuitement

Convertir des types avec USING et une fonction

Si vous ne voulez pas réserver trop d'espace pour une certaine colonne varchar, vous pouvez tronquer les valeurs avant de convertir son type.

Pour cela, vous pouvez utiliser la syntaxe suivante :

ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)

Voici comment l'interpréter : comme vous voulez réserver seulement x caractères pour column_name, vous devez conserver une SUBSTRING de chaque valeur, c'est-à-dire ses x premiers caractères, et ignorer le reste. Ainsi, les valeurs respecteront l'exigence varchar(x).

Cette activité fait partie du cours

Introduction aux bases de données relationnelles en SQL

Voir le cours

Instructions de l’exercice

  • Exécutez l'exemple de code tel quel et prenez note de l'erreur.
  • Utilisez maintenant SUBSTRING() pour réduire firstname à 16 caractères afin que son type puisse être modifié en varchar(16).

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors 
ALTER COLUMN firstname 
TYPE varchar(16)
Modifier et exécuter le code