主キーを Memberid に変更する際の自動インクリメントの維持
MySQL では、自動インクリメント カラムを含むテーブルを作成するには、次のことも必要です。を主キーとして指定します。ただし、主キーを別のフィールドにする必要がある場合、「#1075 - テーブル定義が正しくありません」というエラーが発生する可能性があります。
この問題を解決するには、自動インクリメント列を維持することができます。 (id) memberid を主キーにします。これは、id 列にインデックス (キー) を作成することで実現できます:
CREATE TABLE members ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `memberid` VARCHAR(30) NOT NULL, `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `firstname` VARCHAR(50) NULL, `lastname` VARCHAR(50) NULL, PRIMARY KEY (`memberid`), KEY (`id`) );
このソリューションにより、id 列が自動インクリメントされるため、テーブルのパフォーマンスが連続した挿入と更新に対して最適化されたままになります。 。一方、クエリではメンバー ID によってユーザーを効率的に識別できます。
ID 列にインデックスを追加すると、MySQL は、主キーではない場合でも、このフィールドを使用して行をすばやく見つけることができます。ただし、id 列を主キーとして直接使用する場合と比較して、パフォーマンスが若干遅くなる可能性があることに注意することが重要です。
このアプローチにより、良好なパフォーマンスを維持しながらデータベース設計を柔軟に行うことができ、犠牲にするディスク容量を最小限に抑えて使いやすさを向上させ、クエリの最適化。
以上がMySQL で主キーを変更するときに自動インクリメントを維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。