MySQL InnoDB: 非主キーの自動インクリメント
MySQL の InnoDB ストレージ エンジンでは、主キーの値を自動インクリメントできます。ただし、非主キーの自動インクリメントは直接サポートされていません。
具体的な質問: テーブル構造
「book_comments」の次のテーブル構造を考えてみましょう:
book_id medium_int timestamp medium_int user_id medium_int vote_up small_int vote_down small_int comment text comment_id medium_int
非主キーの自動インクリメントは可能ですか?
はい、非主キーの自動インクリメントは可能です。ただし、自動インクリメントされる列にインデックスを作成する必要があります。
推奨される解決策
非主キーを自動インクリメントする可能性があるにもかかわらず、推奨される解決策は解決策は、データの整合性を目的として、「comment_id」を主キーにし、「book_id」、「timestamp」、および「user_id」の組み合わせに一意のインデックスを作成することです。
追加の考慮事項
質問で言及されている代替案には欠点があります:
したがって、最も効率的で堅牢な解決策は、「comment_id」を主キーとして使用し、「book_id」、「timestamp」、「user_id」に一意のインデックスを作成するという推奨アプローチに従うことです。
以上がMySQL InnoDB で非主キーを自動インクリメントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。