ホームページ  >  記事  >  データベース  >  データの挿入時に「エラー コード: 1062。キー \'PRIMARY\' のエントリ \'1\' が重複しています」が表示されるのはなぜですか?

データの挿入時に「エラー コード: 1062。キー \'PRIMARY\' のエントリ \'1\' が重複しています」が表示されるのはなぜですか?

DDD
DDDオリジナル
2024-10-31 08:01:01813ブラウズ

Why Am I Getting

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

を試行したときテーブルにデータを挿入すると、「エラー コード: 1062。キー 'PRIMARY' のエントリ '1' が重複しています。」というエラー メッセージが表示される場合があります。このエラーは、テーブルとして定義されている列に重複した値を挿入しようとしていることを示します。 Primary key.

あなたの場合、問題はテーブル PROGETTO.UFFICIO-INFORMAZIONI 内にあります。このテーブルの主キーは ID として定義されます。 INSERT ステートメントで ID の値を 1 として明示的に指定しました:

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`ID`, `viale`, `num_civico`, ...) 
VALUES (1, 'Viale Cogel ', '120', ...)

ただし、この値はテーブルにすでに存在します。主キーはレコードごとに一意であるため、重複する値を挿入することはできません。

解決策: 自動インクリメントを使用する

主キーの重複エラーを回避するための推奨解決策は次のとおりです。 ID 列に自動インクリメントを使用します。これは、データベースが挿入中に ID 列の一意の値を自動的に生成することを意味します。自動インクリメントを有効にするには、テーブル定義を次のように変更します:

CREATE TABLE IF NOT EXISTS `PROGETTO`.`UFFICIO-INFORMAZIONI` (
  `ID` INT(11) NOT NULL AUTO_INCREMENT,
  `viale` VARCHAR(45) NULL,
  ...
);

自動インクリメントを有効にしたら、INSERT ステートメントで ID 列を省略できます:

INSERT INTO `PROGETTO`.`UFFICIO-INFORMAZIONI` (`viale`, `num_civico`, ...) 
VALUES ('Viale Cogel ', '120', ...)

自動インクリメントを使用すると、データベースは自動的に一意の値を ID 列に割り当て、重複キー エラーが発生しないようにします。

以上がデータの挿入時に「エラー コード: 1062。キー \'PRIMARY\' のエントリ \'1\' が重複しています」が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。