Convertir tipos USING una función
Si no quieres reservar demasiado espacio para una determinada columna varchar, puedes truncar los valores antes de convertir su tipo.
Para ello, puedes utilizar la siguiente sintaxis:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Deberías leerlo así: Como solo quieres reservar x caracteres para column_name, tienes que conservar un SUBSTRING de cada valor, es decir, los primeros x caracteres del mismo, y desechar el resto. De este modo, los valores se ajustarán al requisito varchar(x).
Este ejercicio forma parte del curso
Introducción a las bases de datos relacionales en SQL
Instrucciones del ejercicio
- Ejecuta el código de ejemplo tal cual y toma nota del error.
- Ahora utiliza
SUBSTRING()para reducirfirstnamea 16 caracteres, de modo que su tipo pueda modificarse avarchar(16).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)