Typen converteren MET behulp van een functie
Als je niet te veel ruimte wilt reserveren voor een bepaalde varchar-kolom, kun je de waarden eerst afkappen voordat je het type wijzigt.
Hiervoor kun je de volgende syntaxis gebruiken:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
Dit lees je zo: omdat je maar x tekens wilt reserveren voor column_name, moet je een SUBSTRING van elke waarde behouden, oftewel de eerste x tekens, en de rest weggooien. Zo passen de waarden binnen de varchar(x)-eis.
Deze oefening maakt deel uit van de cursus
Introductie tot relationele databases in SQL
Oefeninstructies
- Voer de voorbeeldcode ongewijzigd uit en let op de foutmelding.
- Gebruik nu
SUBSTRING()omfirstnamete verkleinen tot 16 tekens, zodat het type gewijzigd kan worden naarvarchar(16).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)