Перетворюйте типи за допомогою функції USING
Якщо ви не хочете відводити забагато місця для певного стовпця типу varchar, можна спершу скоротити (truncate) значення перед зміною типу.
Для цього скористайтеся такою конструкцією:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Логіка така: оскільки ви хочете відвести лише x символів для column_name, слід лишити 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)