Umwandlung von Typen mittels einer Funktion

Wenn du nicht zu viel Platz für eine bestimmte varchar-Spalte reservieren willst, kannst du die Werte vor der Umwandlung * abschneiden*.

Dazu kannst du die folgende Syntax verwenden:

ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)

Du solltest es so lesen: Da du nur x Zeichen für column_name reservieren willst, musst du von jedem Wert einen SUBSTRING behalten, also die ersten x Zeichen, und den Rest verwerfen. Auf diese Weise entsprechen die Werte den Anforderungen von varchar(x).

Diese Übung ist Teil des Kurses

Einführung in relationale Datenbanken in SQL

Kurs anzeigen

Anleitung zur Übung

  • Führe den Beispielcode unverändert aus und beachte den Fehler.
  • Verwende nun SUBSTRING(), um firstname auf 16 Zeichen zu verkürzen, damit der Typ in varchar(16) geändert werden kann.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors 
ALTER COLUMN firstname 
TYPE varchar(16)