24

そのため、私の MySQL データベースは少しおかしな動作をしています。これは私のテーブルです:

Name shares id  price   indvprc
cat   2     4   81      0
goog  4     4   20      20
fb    4     9   20      20

テーブルに挿入しようとすると、この #1062 エラーが発生します。そのため、さらに調べたところ、名前と共有の値が同じテーブルに値を挿入しようとすると、#1062 エラーが返されることがわかりました。たとえば、挿入した場合:

fb    4      6     20   20 

エラーが返されます。しかし、共有数を 6 に変更すると、問題なく動作します。一意である可能性のある私の列の1つが原因ですか、それともmysqlの何かですか?

4

9 に答える 9

17

ORsharesとして削除する必要がありますPRIMARY KEYUNIQUE_KEY

于 2012-07-24T20:12:10.507 に答える
8

主キーでSHOW CREATE TABLE your-table-nameある列を確認するために使用します

于 2012-07-24T20:10:19.193 に答える
3

「lock」プロパティを「shared」から「exclusive」に変更して解決しました。

ALTER TABLE `table` 
CHANGE COLUMN `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT COMMENT '' , LOCK = EXCLUSIVE;
于 2015-12-09T02:19:02.463 に答える
2

正確なエラー メッセージは何ですか? #1062 は、列の主キー制約に違反する重複エントリを意味します。つまり、列に同じ値を 2 つ持つことはできません。エラーメッセージは、どの列が制約されているかを示しているはずです。「共有」と推測しています。

于 2012-07-24T20:11:27.450 に答える
1

おそらくこれは最善の解決策ではありませんが、次のことを行うと問題が解決します

ステップ 1: 次のコマンドを使用してデータベース ダンプを取得します。

mysqldump -u root -p databaseName > databaseName.db

線を見つける

ENGINE=InnoDB AUTO_INCREMENT="*****" DEFAULT CHARSET=utf8;

ステップ 2: *******mysql テーブル ID の最大 ID に変更します。この値を保存します。

ステップ 3: 再度使用する

mysql -u root -p databaseName < databaseName.db

私の場合、他のテーブルにデータを入力するために使用する手動エントリを追加したときに、このエラーが発生しました。mysql コマンドを使用して値AUTO_INCREMENTを max idに設定する方法

于 2013-04-15T10:15:57.040 に答える