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
Instructions de l’exercice
- Exécutez l'exemple de code tel quel et prenez note de l'erreur.
- Utilisez maintenant
SUBSTRING()pour réduirefirstnameà 16 caractères afin que son type puisse être modifié envarchar(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)