ホームページ > データベース > mysql チュートリアル > MySQL エラー 1062 を修正する方法: 主キーのエントリ '0' が重複していますか?

MySQL エラー 1062 を修正する方法: 主キーのエントリ '0' が重複していますか?

Patricia Arquette
リリース: 2024-12-29 07:53:14
オリジナル
574 人が閲覧しました

How to Fix MySQL Error 1062: Duplicate Entry '0' for Primary Key?

MySQL エラーのトラブルシューティング: 主キーのエントリ '0' が重複しています

MySQL で momento_distribution テーブルの主キーを変更しようとしたときにエラーが発生しました。エラー メッセージ「1062 - キー 'PRIMARY' のエントリ '0' が重複しています」は、新しい主キー列に重複した値が含まれていることを示します。

分析

検査の結果、新しく作成されたid 列のすべての行の値が「0」になります。この競合により、重複レコードが存在するため、一意の主キーを割り当てることができなくなります。

解決策

この問題を解決するには、主キー列に一意の値が含まれていることを確認する必要があります。最も一般的なアプローチは、列を自動インクリメントすることです。これにより、新しい行ごとに一意の値が自動的に生成されます。

テーブル作成の変更:

CREATE TABLE `momento_distribution`
  (
     `momento_id`       INT(11) NOT NULL AUTO_INCREMENT,
     `momento_idmember` INT(11) NOT NULL,
     `created_at`       DATETIME DEFAULT NULL,
     `updated_at`       DATETIME DEFAULT NULL,
     `unread`           TINYINT(1) DEFAULT '1',
     `accepted`         VARCHAR(10) NOT NULL DEFAULT 'pending',
     `ext_member`       VARCHAR(255) DEFAULT NULL,
     PRIMARY KEY (`momento_id`, `momento_idmember`),
     KEY `momento_distribution_FI_2` (`momento_idmember`),
     KEY `accepted` (`accepted`, `ext_member`)
  )
ENGINE=InnoDB
DEFAULT CHARSET=latin1$$
ログイン後にコピー

既存の変更テーブル:

ALTER TABLE `momento_distribution`
  CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT,
  DROP PRIMARY KEY,
  ADD PRIMARY KEY (`id`);
ログイン後にコピー

注: これは、id 列がすでに存在していることを前提としています。存在しない場合は、ALTER ステートメントを使用して作成する必要があります。

以上がMySQL エラー 1062 を修正する方法: 主キーのエントリ '0' が重複していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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