2011-07-12 14 views
2

refIdテーブルが一意のテーブルで次の2つのクエリを実行しています。あなたが見ることができるように行くされているREFID値は異なりますが、私はおそらく、私は何がユニーク理解し、平均複製または多分私はユニークなテーブルのポイントを逃していません次のエラー異なる値を持つmysqlの重複エントリ

#1062 - Duplicate entry '2147483647' for key 2 

INSERT INTO eve_journal(`date`, `refID`, `refTypeID`, `ownerName1`, `ownerID1`, `ownerName2`, `ownerID2`, `argName1`, `argID1`, `amount`, `balance`, `reason`) VALUES('2011-07-12 00:56:00','4597105986','85','CONCORD','1000125','Qzack','90288778','Josameto','30000156','12956.00','365344321.02','11717:3,17057:1,17060:2,17065:1,17076:2,17081:2,23989:2,') 


INSERT INTO eve_journal(`date`, `refID`, `refTypeID`, `ownerName1`, `ownerID1`, `ownerName2`, `ownerID2`, `argName1`, `argID1`, `amount`, `balance`, `reason`) VALUES('2011-07-12 00:52:00','4597093172','34','Shigakarri Niromochi','3012152','Qzack','90288778','Shigakarri Niromochi','3012152','18400.00','365331365.02','No reason specified.') 

を取得しています。あなたの答えを導く手助けをするために、refIDは一意に設定されています。なぜなら、それが入れられている日以外は唯一のものであり、異なることが保証されているからです。どのようにデータを引き出すのか、同じエントリを複数回引っ張ることは可能です。私は重複したエントリを防ぐために、私はいいえと言ってmysqlでそれを行うことができたと思った。

+1

どちらがキー2ですか? –

+0

あなたが望むものを理解できませんか?あなたはrefIDをユニークにしましたが、同じエントリを複数回引き出すことは可能ですか? –

答えて

3

refId列のデータ型が十分大きくないため、INTの最大サイズに縮小されているようです。それをUNSIGNED INTまたはBIGINTのいずれかに増やす。

+0

また、外部システムからのものであればもちろんストリングとして保存することができます。 – Jordan

+0

あなたは速いです、私はちょうど同様の答えを入力していました。たいていの言語では、変数タイプが最大になると、それがラップアラウンドすることになります。私はmysqlが違うと思う(プログラミング言語でもなくても)あなたの答えをありがとう。 – Wes

+0

あなたはそれがうまくいってくれたことをうれしく思っています。オーバーフロー処理に使用される動作に関するいくつかのMySQLのドキュメントです:http://dev.mysql.com/doc/refman/5.0/en/out-of-range-and-overflow.html – Jordan

2

重複値が2147483647であることのエラー状態は、DBで宣言されたフィールドの最大値です。挿入する2つの値は大きく、おそらく最大値に上限が設定されます。

DBのフィールドサイズを大きくして解決します

関連する問題