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

Ver curso

Instrucciones de ejercicio

  • Ejecuta el código de ejemplo tal cual y toma nota del error.
  • Ahora utiliza SUBSTRING() para reducir firstname a 16 caracteres, de modo que su tipo pueda modificarse a varchar(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)