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 de ejercicio
- Ejecuta el código de ejemplo tal cual y toma nota del error.
- Ahora utiliza
SUBSTRING()
para reducirfirstname
a 16 caracteres, de modo que su tipo pueda modificarse avarchar(16)
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)