开始使用免费开始使用

使用函数进行类型转换 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)
编辑并运行代码