Kom igångKom igång gratis

Konvertera typer med hjälp av en funktion

Om du inte vill reservera för mycket utrymme för en viss varchar-kolumn kan du trunkera värdena innan du konverterar dess typ.

För detta kan du använda följande syntax:

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

Du kan läsa det såhär: Eftersom du bara vill reservera x tecken för column_name behöver du behålla en SUBSTRING av varje värde – det vill säga de första x tecknen – och kasta bort resten. På så sätt ryms värdena inom kravet för varchar(x).

Den här övningen är en del av kursen

Introduktion till relationsdatabaser i SQL

Visa kurs

Övningsinstruktioner

  • Kör exempelkoden som den är och notera felmeddelandet.
  • Använd nu SUBSTRING() för att korta ned firstname till 16 tecken så att dess typ kan ändras till varchar(16).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors 
ALTER COLUMN firstname 
TYPE varchar(16)
Redigera och kör kod