そこで、すべて varchar(255) を含むテーブルを作成し、CAST を使用してそれを UNSIGNED に変更することにしました (すべての値が正であるため)。確認すると無署名に変わっていました。しかし、テーブル全体を再度確認すると、列が依然として varchar として扱われていることに気付きました。
私の理解では、CAST は特定のコードでのみ機能し、永続的に変更されることはありません。列の型を永続的に変更したい場合は、以下に示すように ALTER を使用する必要がありますか?
もしそうなら、なぜ人々は ALTER ではなく CAST を使用するのでしょうか?
ああああ
CAST はクエリ内の式の結果のみを変更します。データの保存方法を変更せずに、時々符号なし整数に変更したい場合は、CAST を使用できます。
データの保存方法を変更する場合は、ALTER TABLE を使用する必要があります。
MatchID は、特定の一致に対してのみ数値として表されると仮定します。他のコンテストでは、コンテストはアルファベットの文字列によって識別されます。この場合、列は特定のテーブル内のすべての行に同じデータ型で格納される必要があるため、列は varchar である必要があります。テーブルを変更しないでください。変更すると、数値以外の文字列がすべて 0 に相当する数値に変更されます。