使用函式進行型別轉換(USING)
如果你不想為某個 varchar 欄位預留太多空間,可以在轉換型別前先將值「截斷」(truncate)。
你可以使用以下語法:
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)