在這裡使用Alter與使用Cast相比,是否是不正確的選擇?
P粉176203781
P粉176203781 2023-09-13 17:14:57
0
1
526

所以我建立了一個包含所有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。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板