列のデータ型更新後のデータ切り捨てエラー
34 文字の文字列をサポートするように MySQL 列のデータ型を変更したにもかかわらず、エラーが発生する列内のデータを手動で更新しようとすると、このままになります。 「行 1 の列 'incoming_Cid' のデータが切り捨てられました」というエラーは、適切な列変更を考慮すると不可解に思えます。
根本原因と解決策
問題の原因は次のとおりです。列定義が正しくありません。分析の結果、「incoming_Cid」列は現在 CHAR(1) として宣言されていることが判明しましたが、意図した文字列長に対応するには CHAR(34) にする必要があります。
問題を修正するには、次のコマンドを実行します。コマンド:
ALTER TABLE calls CHANGE incoming_Cid incoming_Cid CHAR(34);
このコマンドは列の長さを 1 から 34 に変更し、意図したとおり 34 文字の文字列を格納できるようにします。
検証
コマンドの実行後、「incoming_Cid」列は CHAR(34) として定義されるはずです。確認するには、次のクエリを発行します。
<code class="SQL">DESC calls;</code>
出力には、変更された列定義が表示されます。
<code class="SQL">Field | Type incoming_Cid | CHAR(34)</code>
これで、手動更新はデータ切り捨てエラーなしで成功するはずです。
以上がMySQL 列のデータ型を更新した後も「データが切り詰められました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。