ホームページ >データベース >mysql チュートリアル >MySQL でデータの切り捨てとエラー設定を管理する方法: 厳密モードと自動切り捨て?

MySQL でデータの切り捨てとエラー設定を管理する方法: 厳密モードと自動切り捨て?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 11:03:02882ブラウズ

How to Manage Data Truncation and Error Settings in MySQL: Strict Mode vs. Automatic Truncation?

MySQL データの切り捨てとエラー設定の管理

MySQL データベースは、挿入中に長すぎる文字列を処理するときの動作が異なります。あるインスタンスではデータが切り捨てられ、別のインスタンスではエラーが発生する可能性があります。この不一致は、特定の MySQL 設定を通じて管理できます。

デフォルトの MySQL の動作

デフォルトでは、MySQL は「strict」モードで動作します。つまり、テーブルへの入力は、長さの制限を含め、列の仕様と正確に一致する必要があります。文字列が定義された長さを超えると、MySQL は次のエラーをスローします:

ERROR 1406 (22001): Data too long for column 'xxx' at row 1

厳密モードを無効にしています

この動作を変更し、長すぎる文字列の自動切り捨てを許可するには文字列を使用すると、厳密モード設定を無効にすることができます。 MySQL には 2 つの関連設定があります。

  • STRICT_TRANS_TABLES: トランザクション テーブルの厳密モードを制御します
  • STRICT_ALL_TABLES: すべてのテーブルの厳密モードを制御します

ステップStrict モードを無効にするには:

  1. MySQL Workbench などのツールまたはコマンド ラインを使用して MySQL データベースに接続します。
  2. 次のコマンドを発行して STRICT_TRANS_TABLES および STRICT_ALL_TABLES を無効にします。
SET GLOBAL sql_mode = 'TRADITIONAL';
SET SESSION sql_mode = 'TRADITIONAL';
  1. SELECT @@sql_mode; を実行して新しい設定を確認します。

Strict モードを無効にした場合の影響

厳密モードを無効にすると、MySQL のデータ検証が緩和され、長い文字列の自動切り捨てが可能になります。ただし、これによりデータ損失や整合性の問題が発生する可能性があることに注意することが重要です。厳密モードを無効にする前に、潜在的な結果を慎重に検討することをお勧めします。

以上がMySQL でデータの切り捨てとエラー設定を管理する方法: 厳密モードと自動切り捨て?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。