1 场景:系统根据行政区划不同分库,不分表。需要根据 sql 语句中的 orgCode 的值切换数据库,比如 orgCode = '51000’切换到 A 数据库执行 sql ,orgCode = '51001’切换到 b 数据库执行 sql 。
2 问题:
https://community.sphere-ex.com/uploads/default/original/2X/6/65e209f74587878d91203c7dca00c4914be448eb.png如上图配置时重写 StandardShardingAlgorithm 的自定义算法未生效,sql 永远在 ds_3 库执行,只有在 rules 加上
tables:
person:
actualDataNodes: ds_${1..3}.person
的配置才能生效,但是只对 person 表起作用。
3 想要达到的效果:只配置默认分库策略,不配置 tables ,然后任意 sql 可根据 orgCode 的值切换到对应数据库执行。