Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Uruchom przykładowy kod bez zmian i zwróć uwagę na błąd.
  • Teraz użyj funkcji SUBSTRING(), aby skrócić kolumnę firstname do 16 znaków – dzięki temu będzie można zmienić jej typ na varchar(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)
Edytuj i uruchom kod