MySQL の自動インクリメントを備えた複合キー
リレーショナル データベース設計における一般的な要件は、複数の列を含む複合キーを定義することです。行を一意に識別します。 MySQL では複合キーの作成が可能ですが、複合キー内のカラムの 1 つを自動インクリメントするには特別な考慮が必要です。
1 つのアプローチは、外部キーと追加の非一意カラムで構成される主キーを作成することです。 。ただし、自動インクリメント列が含まれている場合、この方法ではエラーが発生します。これは、MySQL がテーブル内で 1 つの自動インクリメント カラムのみを許可する制約を強制しており、そのカラムを主キーの一部として定義する必要があるために発生します。
この制限を克服するには、別の戦略が推奨されます。オプションの 1 つはトリガーまたはプロシージャを使用することですが、これによりデータベース設計がさらに複雑になります。
あるいは、MySQL ユーザーは、複数の列の自動インクリメントを許可する MyISAM などの別のデータベース エンジンを利用することもできます。ただし、データベースがすでに InnoDB (最近の MySQL バージョンのデフォルトのストレージ エンジン) を使用している場合、このアプローチは実現できない可能性があります。
以上がMySQL で InnoDB を使用して複合キーに自動インクリメントを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。