近来遇到一个问题,一个数据保存接口。两处调用,一处在联合主键相同是总是更新数据,一处在联合主键相同时却新增了一条。
排查发现:
- 联合主键多大十几个,且其中有几个字段是没有值的;
- 更新数据的调用方将空值使用''代替;
- 新增数据的调用方空值使用NULL代替;
故得出结论:
- mysql某些版本,某些配置下,联合主键空值过多,会导致ON DUPLICATE KEY UPDATE不更新,与主观看法产生矛盾;
- 不是有NULL值就不更新,具体还要看实际情况;
- 建议在插入时替代NULL值。
博客讲述了一个数据保存接口两处调用时出现的问题,一处联合主键相同更新数据,一处却新增。排查发现联合主键有十几个,部分字段为空,不同调用方对空值处理不同。结论是MySQL某些版本和配置下,联合主键空值过多会使ON DUPLICATE KEY UPDATE不更新,建议插入时替代NULL值。
近来遇到一个问题,一个数据保存接口。两处调用,一处在联合主键相同是总是更新数据,一处在联合主键相同时却新增了一条。
排查发现:
故得出结论:

被折叠的 条评论
为什么被折叠?