ホームページ > データベース > mysql チュートリアル > MySQL で自動インクリメントを維持しながら、異なるカラムを主キーとして使用するにはどうすればよいですか?

MySQL で自動インクリメントを維持しながら、異なるカラムを主キーとして使用するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-03 16:02:03
オリジナル
673 人が閲覧しました

How Can I Use a Different Column as Primary Key While Maintaining Auto-Increment in MySQL?

MySQL で自動インクリメントを維持し、主キーとして別の列を使用する

MySQL で、自動インクリメント列を持つテーブルを作成する場合の場合、デフォルトの動作では、その列が主キーにもなります。ただし、クエリが主に別の列を使用して行を識別する場合、この動作はパフォーマンスの問題を引き起こす可能性があります。

次のシナリオを考えてみましょう。自動インクリメント主キーとして id という名前の列と、別の という名前の列を持つテーブルを作成します。 memberid は一意であり、メンバーを識別するためにクエリで使用されます。この場合、パフォーマンス上の理由から、memberid を主キーとして使用することが理想的ですが、そうするとエラーが発生します:

1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
ログイン後にコピー

これに対処するための最良の解決策は、次の 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)                          --- or:    UNIQUE KEY (id)
) ENGINE = MYISAM; 
ログイン後にコピー

このアプローチにより、memberid をプライマリとして使用しながら、パフォーマンスを目的として自動インクリメント列を維持できます。効率的なクエリのためのキー。

以上がMySQL で自動インクリメントを維持しながら、異なるカラムを主キーとして使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート