質問:
SQL ファイルをプログラムでインポートする場合、テーブル匿名ユーザーの場合は 0 に設定される「uid」という名前の auto_increment フィールドが含まれています。ただし、MySQL は 0 を無効な自動インクリメント値として扱います。アプリケーションを変更せずにこれを解決するにはどうすればよいでしょうか?
答え:
MySQL が 0 を有効な自動インクリメント値として受け入れることができるようにするには、「NO_AUTO_VALUE_ON_ZERO」を無効にします。 " 次のコマンドを使用した SQL モード:
<code class="sql">SET [GLOBAL|SESSION] sql_mode='NO_AUTO_VALUE_ON_ZERO'</code>
影響:
この設定は、次のコマンドを使用して INSERT または UPDATE コマンドを解釈しないように MySQL の動作を変更します。次のシーケンス ID として ID 0 を指定します。代わりに、ID をゼロ値として扱います。
注意:
このメソッドを使用して MySQL のデフォルトの動作を回避することは、一般的にアプリケーション設計が不適切であると考えられます。特に将来レプリケーションを実装する予定がある場合は、ID が一貫して使用されるようにすることが重要です。
理由:
「NO_AUTO_VALUE_ON_ZERO」モードが推奨されます。次のシーケンス値をオーバーライドせずに自動インクリメント フィールドにゼロ値を挿入することが必要な特定のユースケース用。このモードを無効にすると、コードを変更せずにアプリケーションの特定の要件に対応できます。
以上がインポート中に MySQL 自動インクリメント フィールドのゼロ値を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。