更新特定日期时间列时重复输入

时间:2015-10-28 09:07:23

标签: mysql

我有一个名为special_offers的表,其中包含以下列: idold_pricenew_priceredeemed_at

id是一个自动递增的主键。

当我创建一行时,redeemed_at列设置为NULL

我创建了一个包含old_price = 20new_price = 10

的新行

所以目前我有一行如下所示:| 1 | 20 | 10 | NULL |

当我运行以下查询时:UPDATE special_offers SET redeemed_at = NOW() WHERE id = 1

一切顺利并更新行。

然后,我将redeemed_at行更改回NULL并再次运行相同的查询,我收到以下错误:#1062 - Duplicate entry '1' for key 'PRIMARY'

我可以更改任何其他列,但只有在此特定redeemed_at上才会给我错误。

有什么想法?

1 个答案:

答案 0 :(得分:0)

问题出现在trigger上,正在该表上插入日志。

它按原样记录了表,包括主键,在第二次记录时,它给出了副本。错误未提及该表。