在这里使用Alter与使用Cast相比,是否是不正确的选择?
P粉176203781
P粉176203781 2023-09-13 17:14:57
0
1
462

所以我创建了一个包含所有varchar(255)的表,然后决定使用CAST将其更改为UNSIGNED(因为所有值都是正数)。当我检查时,它已经被更改为unsigned。然而,我注意到当我再次检查整个表时,列仍然被视为varchar。

我的理解是,CAST只对特定的代码起作用,不会永久更改。如果我想永久更改列类型,需要使用下面所示的ALTER吗?

如果是这样,为什么人们使用CAST而不是ALTER?

CREATE table project.worldcup_players ( MatchID varchar (255), Team_Initials varchar (255), Coach_Name varchar (255), Player_Name varchar (255) ); SELECT * FROM project.worldcup_players; SELECT CAST(MatchID AS UNSIGNED) AS MatchID FROM project.worldcup_players; ALTER TABLE project.worldcup_players CHANGE COLUMN `MatchID` `MatchID` INT NULL DEFAULT NULL ;

P粉176203781
P粉176203781

全部回复 (1)
P粉004287665

CAST只会改变查询中表达式的结果。如果您只想有时将其更改为无符号整数,而不更改数据存储方式,可以使用CAST。

如果要更改数据存储方式,则需要使用ALTER TABLE。

假设您的MatchID仅对某些比赛表示为数字。在其他比赛中,比赛通过字母字符串进行标识。在这种情况下,列必须是varchar,因为在给定表中的所有行上,列必须以相同的数据类型存储。不要修改表格,因为这将导致所有非数字字符串被更改为它们的数字等效值0。

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!