USING 関数を使った型変換
特定の varchar 列に必要以上のスペースを与えたくない場合、型を変換する前に値を切り詰めることができます。
そのために、次の構文を使用します。
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE varchar(x)
USING SUBSTRING(column_name FROM 1 FOR x)
この構文の意味は次のとおりです: column_name に対して x 文字分のスペースのみを確保したいので、各値の SUBSTRING、つまり先頭から x 文字分だけを残し、残りは切り捨てます。これにより、値が varchar(x) の要件を満たすようになります。
この演習はコースの一部です
SQL リレーショナルデータベース入門
演習の手順
- サンプルコードをそのまま実行して、エラーの内容を確認しましょう。
- 次に、
SUBSTRING()を使ってfirstnameを16文字に切り詰め、型をvarchar(16)に変更できるようにしましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Convert the values in firstname to a max. of 16 characters
ALTER TABLE professors
ALTER COLUMN firstname
TYPE varchar(16)