Mycat全局序列号失效的诡异事件

博客讲述了分库表自增id出现异常的情况,其自增id采用物理库自增方式,检查mycat配置文件无误。分析原因发现,分库分表使用mycat自增时,若数据库表id写了AUTO_INCREMENT且mybatis插入语句加入id字段,会使mycat全局id不生效,应修改插入语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

某分库表自增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})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值