MySQL で 0 を有効な自動インクリメント値として強制する
さまざまなシナリオで、MySQL が 0 を有効な値として受け入れるように強制する必要がある場合があります。有効な自動インクリメント値。この状況は、データベース テーブルに自動インクリメント プロパティを持つ主キー フィールドが含まれており、特定のレコードの主キーとして 0 を挿入する必要がある場合に発生します。
たとえば、ユーザー ID フィールドが含まれるデータベース テーブルを考えてみましょう。 (uid) は自動インクリメント主キーとして指定されます。デフォルトでは、MySQL は 0 を自動インクリメント フィールドの無効な値として扱います。これは、uid フィールドに 0 を挿入しようとすると、MySQL がそれを次に利用可能な ID を生成する命令として解釈することを意味します。
この制限を克服し、有効な値として 0 を挿入できるようにするために、MySQL は以下を提供します。特定の構成設定。 sql_mode 変数を「NO_AUTO_VALUE_ON_ZERO」に設定すると、デフォルトの動作を無効にし、正当な自動インクリメント値として 0 を受け入れるように MySQL に指示できます。
この設定を有効にするには、次のクエリを実行します。
SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'
GLOBAL オプションは設定を後続のすべてのセッションにグローバルに適用しますが、SESSION オプションは設定を現在のセッションに制限します。
この設定が完了すると、MySQL は 0 を無効なものとして扱わなくなります。自動インクリメント値。 uid フィールドに 0 を安全に挿入でき、有効な主キーとして受け入れられます。
ただし、このアプローチを使用する場合は注意が必要です。 NO_AUTO_VALUE_ON_ZERO 設定は、特にデータ レプリケーションが使用されている環境で、より広範な影響を与える可能性があります。したがって、この設定を運用環境に展開する前に、この設定を慎重に実装し、その効果を徹底的にテストすることをお勧めします。
以上がMySQL で有効な自動インクリメント値として 0 を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。