2016-10-11 69 views
-1

我有以下查詢,我用來從包含代碼重複的csv文件插入一些數據。重複鍵上的mysql生成號碼

INSERT INTO table_name (ProductCode) VALUES (23) ON DUPLICATE KEY UPDATE ProductCode = FLOOR(RAND() * 500) 

上述查詢的問題是,它總是失敗

Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '88' for key 'ProductCode' in 

我該怎麼辦我的查詢,所以如果鍵已經存在產生一個又一個,然後繼續插入?

+1

所以這意味着插入是一個騙局,並通過隨機更新也是一個騙局呢? – Drew

+0

是的。例如我有產品代碼4875 7次。產品代碼相同,但其餘數據不同。這意味着我必須插入一切。 –

+0

看起來更新失敗,而不是插入。正確地查看錯誤信息 – Rahul

回答

0

執行此查詢的簡單方法是在php中執行一段時間,然後從中檢查產品代碼是否唯一,以及是否不唯一生成新代碼。不要忘記-1這個答案因爲我不會發布代碼,我只是爲了確保我得到-1 :-)。我聽說在一個問題上做-1會花費更少的時間,而當沒有人知道這是一個好的方法時,繼續前進。