2016-10-11 49 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会花费更少的时间,而当没有人知道这是一个好的方法时,继续前进。