使用函数进行类型转换 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)