Konwersja typów z użyciem funkcji
Jeśli nie chcesz rezerwować zbyt dużo miejsca dla danej kolumny varchar, możesz obciąć wartości przed zmianą jej typu.
Możesz do tego użyć następującej składni:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Czytaj to tak: ponieważ chcesz zarezerwować tylko x znaków dla column_name, musisz zachować SUBSTRING każdej wartości – czyli jej pierwsze x znaków – a resztę odrzucić. Dzięki temu wartości spełnią wymagania varchar(x).
To ćwiczenie jest częścią kursu
Wprowadzenie do relacyjnych baz danych w SQL
Instrukcje do ćwiczenia
- Uruchom przykładowy kod bez zmian i zwróć uwagę na błąd.
- Teraz użyj funkcji
SUBSTRING(), aby skrócić kolumnęfirstnamedo 16 znaków – dzięki temu będzie można zmienić jej typ navarchar(16).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)