Adakah menggunakan Alter di sini pilihan yang salah berbanding menggunakan Cast?
P粉176203781
P粉176203781 2023-09-13 17:14:57
0
1
480

Jadi saya mencipta jadual dengan semua varchar(255) dan kemudian memutuskan untuk menggunakan CAST untuk menukarnya kepada UNSIGNED (kerana semua nilai adalah positif). Apabila saya menyemak, ia telah ditukar kepada tidak ditandatangani. Walau bagaimanapun, saya perhatikan bahawa apabila saya menyemak keseluruhan jadual sekali lagi, lajur masih dianggap sebagai varchar.

Pemahaman saya ialah CAST hanya berfungsi pada kod tertentu dan tidak mengubahnya secara kekal. Jika saya ingin menukar jenis lajur secara kekal, adakah saya perlu menggunakan ALTER seperti yang ditunjukkan di bawah?

Jika ya, mengapa orang menggunakan CAST dan bukannya 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

membalas semua(1)
P粉004287665

CAST hanya mengubah hasil ungkapan dalam pertanyaan. Jika anda hanya mahu menukarnya kepada integer tidak bertanda kadangkala, tanpa mengubah cara data disimpan, anda boleh menggunakan CAST.

Jika anda ingin menukar cara data disimpan, anda perlu menggunakan ALTER TABLE.

Andaikan MatchID anda diwakili sebagai nombor hanya untuk padanan tertentu. Dalam pertandingan lain, pertandingan dikenal pasti dengan rentetan abjad. Dalam kes ini, lajur mestilah varchar kerana lajur mesti disimpan dengan jenis data yang sama pada semua baris dalam jadual tertentu. Jangan ubah suai jadual kerana ini akan menyebabkan semua rentetan bukan angka ditukar kepada setara angka 0.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!