在上一篇的文章中实现了mycat的分库分表,https://blog.youkuaiyun.com/java_chegnxuyuan/article/details/89891519
但是按照上一篇文章操作时,会发现虽然我们对逻辑数据库的的主键设置自增长,但是进行insert操作时,如果不管id时insert会出错。这就是这篇文章要解决的问题。
在上一篇中我们设置了
<system>
<property name="defaultSqlParser">druidparser</property>
<property name="mutiNodeLimitType">1</property>
<property name="serverPort">8066</property>
<property name="managerPort">9066</property>
<property name="sequnceHandlerType">0</property>
</system>
这个<property name="sequnceHandlerType">0</property>表示我们使用本地文件的方式处理主键自增长
修改配置文件sequence_conf.properties
GLOBAL.HISIDS= 表示使用过的历史分段(一般无特殊需要可不配置)
GLOBAL.MINID=10001 表示最小ID值
GLOBAL.MAXID=20000 表示最大ID值
GLOBAL.CURID=10000 表示当前ID值
保存重启
insert into item(id,name,age,score) values(next value for MYCATSEQ_GLOBAL,'test',20,100);
即可insert成功,但是这和我们平常写的sql不一样。
第二种方式:
我们在第一篇文章中配置了table的名称为item
在sequence_conf.properties 中添加
ITEM.HISIDS= 表示使用过的历史分段(一般无特殊需要可不配置)
ITEM.MINID=10001 表示最小ID值
ITEM.MAXID=20000 表示最大ID值
ITEM.CURID=10000 表示当前ID值
需要特别注意的是这里配置时,必须用table名称的大写
保存重启
insert into item(name,age,score) values('test',20,100);
上一篇文章实现了Mycat的分库分表,但按其操作,对逻辑数据库主键设自增长后,insert操作不管id会出错。本文介绍两种解决办法,一是修改配置文件sequence_conf.properties,使用本地文件方式处理主键自增长;二是在该文件中添加相关配置,注意用表名大写,保存重启即可。
285

被折叠的 条评论
为什么被折叠?



