【踩坑】ShardingJdbc实现自动生成主键时,根据雪花算法生成的主键值存放在别的字段上了

文章讲述了在使用ShardingJdbc时,如何配置雪花算法ID生成策略以确保主键插入到正确字段的问题,强调了配置默认数据源、分表规则以及worker.id和max.vibration.offset参数的重要性。

问题

ShardingJdbc 生成雪花算法id主键时,插入到表中的数据显示生成的内容存放在别的字段上
在这里插入图片描述

正确的应该是:

image-20231222140841230

原因

生成雪花算法id时候,其他属性值也要填写默认值,否则,id就会生成到别的属性列的位置 这里找了好久这个问题

实现效果

image-20231222141005321

image-20231222141018046

代码

sharding配置:根据年月分表

    # 配置默认数据源ds1
    sharding:
      # 默认数据源,主要用于写,注意一定要配置读写分离 ,注意:如果不配置,那么就会把三个节点都当做从slave节点,新增,修改和删除会出错。
      default-data-source-name: ds1
      # 配置分表规则
      tables:
        # order 逻辑表名
        # 订单表按照 年月分表  生成表名 order_202101,order_202102,order_202103,order_202201,order_202202,order_202203
        order:
          # 最后一部分 ${ 生成一个从1到3的数字序列,然后将每个数字转换为字符串,并在左边填充0,使其总长度为2 }
          actual-data-nodes
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码元宋大米

感谢小主大赏,留言可进互助群~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值