mysql奇怪的select语句报主键冲突,希望大牛帮忙看看什么原因

一个单表的select 根据主键查询语句竟然报主键冲突了,并且冲突的值还不是我当前查询的这条记录的主键。

能不能贴一下你的shopOrderManagerMapper和xml里的方法

现象确实很奇怪,首先在数据库使用sql查询一下看看有没有问题。感觉是能查出来多行。

错误信息:事务错误,需要回滚,错误信息,重复输入主键 '01213303XXXXXXX'

检查代码,查看是否有插入操作,查看插入的主键是什么。应该是你查询之后,进行了插入操作。

看一下哪里调用了ShopOrderMangerMapper的queryShopOrderTemp,debug调试一下

查看数据库,将01213303XXXX 这条数据删除。

<select id="queryShopOrderTemp" resultMap="BaseResultMap">
    SELECT
        f_order_number,
        f_ssis_order_number,
        f_order_type,
        f_order_state_code,
        f_shop_code,
        f_ext_shop_code,
        f_shop_name,
        f_build_time,
        f_cus_code,
        f_cus_name,
        f_cus_phone,
        f_order_pay_time,
        f_ori_order_money,
        f_discount_order_money,
        f_order_money,
        f_order_integral,
        f_order_bz,
        f_oper_id,
        f_oper_name,
        f_create_time,
        f_returned_time,
        category,
        f_used_ticket_flag,
        f_terminal_no,
        f_user_name,
        f_user_code,
        f_mer,
        f_order_souce 
      from
        t_order_main_info_temp
      where F_MER = #{fMer} and F_ORDER_NUMBER = #{fOrderNumber}
</select>