Преобразование типов с помощью функции
Если вы не хотите резервировать слишком много места для столбца типа varchar, можно усечь значения перед преобразованием типа.
Для этого используйте следующий синтаксис:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Читайте это так: поскольку вы хотите зарезервировать для column_name только x символов, нужно оставить SUBSTRING каждого значения — то есть первые x символов — и отбросить остаток. Таким образом, значения будут соответствовать требованию varchar(x).
Это упражнение является частью курса
Введение в реляционные базы данных в SQL
Инструкции к упражнению
- Запустите пример кода в исходном виде и обратите внимание на ошибку.
- Теперь используйте
SUBSTRING(), чтобы сократитьfirstnameдо 16 символов и изменить тип столбца наvarchar(16).
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)