MySQL 文字列切り捨ての異常: 不一致の解明
MySQL データベース内の文字列管理の領域では、特有の不一致が発生する可能性があります。同じデータベースを共有する 2 つのインスタンスについて考えてみましょう。1 つは挿入時に長い文字列をサイレントに切り捨て、もう 1 つは断固としてエラーを宣言します。この謎を理解するために、この動作を制御する構成設定を詳しく調べてみましょう。
MySQL の構成と文字列の切り捨て
切り捨ての秘密を解く鍵は MySQL の中にあります。構成。具体的には、STRICT_TRANS_TABLES と STRICT_ALL_TABLES という 2 つの設定が重要な役割を果たします。これらの設定を無効にすると、挿入中に過度に長い文字列を自動的に切り詰めることができ、最初に説明した動作を反映します。
STRICT モードについて
"Strict 「モード」は MySQL によって定義されており、INSERT や UPDATE などのデータ変更操作中の無効な値または欠落値の処理を決定します。これらのモードが有効になっている場合、MySQL はデータ型と範囲の制約を厳密に適用し、逸脱するとエラーが発生します。ただし、無効にすると、システムの柔軟性が向上し、データが列の長さの制限を超えた場合に自動的に切り捨てられるようになります。
参考資料
MySQL に関する包括的な説明については、モードとそのデータ処理への影響については、MySQL の公式ドキュメントを参照してください: https://dev.mysql.com/doc/refman/8.0/en/mysql-server-sql-modes.html
以上がMySQL が時々サイレントに文字列を切り詰めたり、他の場合にエラーをスローしたりするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。