1. 程式人生 > >Mycat全域性序列號失效的詭異事件

Mycat全域性序列號失效的詭異事件

概述

某分庫表自增id出現異常,自增id用的物理庫自增方式,檢查了mycat配置檔案,是沒有配錯的,百思不得其姐

原因

如果分庫分表,使用mycat自增,資料庫表id寫了AUTO_INCREMENT,並且mybatis裡插入語句如下:

insert into c_user_info (id,  
          user_id, phone, nickname)
        values (#{id,jdbcType=INTEGER}, 
          #{userId,jdbcType=INTEGER}, #{phone,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR})

裡面加入id欄位。此時,mycat全域性id不生效,id自增使用的是資料庫自增。若想使用mycat全域性id自增,需要把插入語句改為:

insert into c_user_info (  
          user_id, phone, nickname)
        values ( 
          #{userId,jdbcType=INTEGER}, #{phone,jdbcType=VARCHAR}, #{nickname,jdbcType=VARCHAR})