2016-03-27 13 views
0

ピボットテーブルでは、2つのビッグintフィールドに複合ユニークキーを追加する必要があります。複合ユニークキーと重複エントリエラーの追加

ALTER TABLE table_name ADD UNIQUE KEY `uk_field1_field2` (field1, field2); 

問合せは、これは私が何を推測フォームの24014から1435 "これらの値を持つテーブルの最後のレコードでエラー

Duplicate entry '24014-1435' for key 'uk_field1_field2' 

を報告します。私はその組み合わせがユニークであることを確認しました。特定のレコードを削除すると、エラーは同じエラーの2番目の最後の行を指しています。私はすべてのレコードをフラッシュするまで、私はユニークなキーを追加することはできません。

すべての行をフラッシュせずにテーブルにユニークなキー制約を追加できますか?

EDIT

表:TABLE_NAME
カラム:タイムスタンプ
applied_atタイムスタンプupdated_atの
ID BIGINT(20)UN AI PK
のcreated_atタイムスタンプ

FIELD1 BIGINT(20)
FIELD2 bigint(20)
field3 bigint(20)
ステータスはvarchar(64)キーのエコーは、違反の主要な責任を負わない可能性があり

例のデータ

'2214', '2016-01-05 13:51:03', '2016-01-05 13:51:03', '2016-01-05 13:51:02', '1972', '24', '1155', 'applied' 
'2215', '2016-01-05 13:51:05', '2016-01-05 13:51:05', '2016-01-05 13:51:03', '1972', '31', '2137', 'applied' 
'2216', '2016-01-05 13:51:06', '2016-01-05 13:51:06', '2016-01-05 13:51:05', '1972', '33', '2487', 'on-hold' 
'345', '2016-01-05 08:50:07', '2016-01-05 08:50:07', '2016-01-05 08:50:07', '1717', '54', '4602', 'on-hold' 
+0

でinvestiganting試し参照値? – scaisEdge

+0

問題を再現する小さな例(テーブル定義とデータ)を提供できますか? –

+0

@scaisEdgeこれらのフィールドはどちらもここではヌル入力できません。 –

答えて

2

..

でvalueaaaaaaaaaaaaaaa-11111という保証はありません メッセージ

[23000] [1062]キー 'にmykey'

のエントリ 'aaaaaaaaaaaaaaa-11111' を重複します

は、実際に違反を引き起こす値です。 MariaDBとevtlのバグであると思われます。 MYS

このhttps://dba.stackexchange.com/questions/106294/add-unique-index-fails-with-duplicate-entry-error-but-no-duplicates-found

あなたがユニークでないインデックスを追加してみてくださいし、問題とキーのために調べることができます。..

はあなたには、いくつかのヌルを持っている

select field1, field2 count(*) group by field1, field2 
having count(*) >1; 
+0

単純なインデックスは問題なく、エラー報告もありません。 –

+0

私は簡単な提案で答えを更新しました – scaisEdge

+0

おかげで大きな助けになりました。 :) –

関連する問題