MySQL で「主キーの重複エントリ」エラー (コード 1062) が発生するのはなぜですか?

Barbara Streisand
リリース: 2024-10-31 12:42:01
オリジナル
615 人が閲覧しました

Why am I getting a

MySQL エラー: 主キーの重複エントリ

エラー コード: 1062。キー 'PRIMARY' のエントリ '1' が重複しています

問題:

UFFICIO-INFORMAZIONI テーブルに新しい行を挿入しようとすると、主キー値 '1' に重複したエントリが存在するというエラーが表示されます。

説明:

主キーは、テーブル内の列または列セットに対する一意制約です。これにより、各行が一意の識別子を持つことが保証されます。あなたの場合、ID 列は主キーとして定義されています。つまり、2 つの行が ID 列に同じ値を持つことはできません。

原因:

このエラーは、テーブルに既に存在する ID 値を持つ新しい行を挿入しようとしているために発生します。同じ主キー値を持つ 2 つの行は存在できないため、これは主キー制約に違反します。

解決策:

この問題には 2 つの解決策が考えられます。

  1. 自動インクリメントを使用する: ID 列を自動インクリメント列に変更します。これにより、データベースは新しい行ごとに一意の ID 値を自動的に生成できるようになり、ID 値を明示的に指定する必要がなくなります。
  2. 一意の ID 値を指定します:自動インクリメントを使用する場合は、新しい行ごとに指定する ID 値が一意であることを確認する必要があります。独自の一意の ID 値を生成することも、UUID (Universally Unique Identifier) ライブラリを使用することもできます。

例:

MySQL で自動インクリメントを使用するには、テーブル作成ステートメントを次のように変更します。

<code class="sql">CREATE  TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `viale` VARCHAR(45) NULL ,
   .....</code>
ログイン後にコピー

これにより、テーブルに挿入される新しい行ごとに自動的に増加する ID 列が作成されます。これにより、新しい行を挿入するときに ID 値を省略できます。

<code class="sql">INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...)
VALUES ('Viale Cogel ', '120', ...)</code>
ログイン後にコピー

以上がMySQL で「主キーの重複エントリ」エラー (コード 1062) が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!