MySQL の主キーでなくても自動インクリメント列は存在できますか?
不正なテーブル定義エラーへの対処: 自動インクリメントと主キーのバランスをとる
このシナリオには、ID 列が視覚的な自動インクリメント フィールドとして機能する MySQL テーブルが含まれます。 memberid 列は実際の一意のキーとして機能します。ただし、PRIMARY KEY (memberid) を使用してテーブルを定義しようとすると、自動列は 1 つだけであり、キーである必要があることを示すエラー (1075) が発生します。
エラーの解決: 自動インクリメントの保持および Unique Key
この問題を解決するには、インデックス (キー) が定義されていれば、PRIMARY KEY ではない自動インクリメント列を使用できます。変更されたテーブル定義は次のとおりです。
<code class="sql">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;</code>
id 列に KEY または UNIQUE KEY インデックスを追加すると、自動インクリメント機能が維持され、memberid 列が主キーになり、 memberid value.
最適なアプローチの選択: パフォーマンスと容量のバランス
最適な選択は、パフォーマンスとディスク容量の相対的な重要性によって異なります。パフォーマンスが最も重要な場合は、自動インクリメント ID 列を維持し、memberid のインデックスを使用するとバランスが取れます。
- 自動インクリメント ID により、効率的な並べ替えと範囲クエリが提供されます。
- memberid のインデックスにより、一意のメンバー ID を使用した迅速な検索が保証されます。
ただし、ディスク容量が重要な問題である場合は、id 列を完全に削除し、主キーと auto の両方として memberid 列を利用することを検討してください。 -増加フィールド。このアプローチでは、スペース利用率を向上させるためにパフォーマンスがある程度犠牲になります。最終的に、パフォーマンスとスペースのどちらを選択するかは、アプリケーションの特定の要件によって決まります。
以上がMySQL の主キーでなくても自動インクリメント列は存在できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
