mycat全局序列号
【摘要】 1、全局序列化
Mycat支持的全局序列化主要包括 本地文件方式,数据库方式,本地时间戳方式。实际生产环境,建议还是使用数据库方式。
数据库方式配置:
<system><property name="sequnceHandlerType">1</property></system>其中0代表本地文件方式,1...
1、全局序列化
Mycat支持的全局序列化主要包括 本地文件方式,数据库方式,本地时间戳方式。实际生产环境,建议还是使用数据库方式。
数据库方式配置:
- <system><property name="sequnceHandlerType">1</property></system>
其中0代表本地文件方式,1代表数据库方式,2代表时间戳方式。 - 创建 MYCAT_SEQUENCE表
然后插入一条记录。-
CREATE TABLE `MYCAT_SEQUENCE` (
-
-
`name` varchar(50) NOT NULL,
-
-
`current_value` int(11) NOT NULL,
-
-
`increment` int(11) NOT NULL DEFAULT '100',
-
-
PRIMARY KEY (`name`)
-
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
insert into MYCAT_SEQUENCE ('name','current_value','increment') values ('GLOBAL',10000,100);
-
-
insert into MYCAT_SEQUENCE ('name','current_value','increment') values ('ORDER',10000,100);
不是在 MYCAT_SEQUENCE 增加了一条记录,Mycat 就会认这个序列化,而是必须在 sequence_db_conf.properties 文件中,做好配置。
-
然后可以在语句中可以这样写。
-
-
next value for MYCAT_SEQGLOBAL
-
-
next value for MYCAT_SEQORDER
-
创建三个函数:
-
CREATE FUNCTION mycat_seq_currval(seq_name VARCHAR(50)) RETURNS varchar(64)
-
-
CHARSET utf8
-
-
DETERMINISTIC
-
-
BEGIN
-
-
DECLARE
-
-
retval VARCHAR (64);
-
-
SET retval = '-999999999,null';
-
-
SELECT
-
-
concat( CAST(current_value AS CHAR),',',CAST(increment AS CHAR) ) INTO retval
-
-
FROM MYCAT_SEQUENCE
-
-
WHERE NAME = seq_name;
-
-
RETURN retval;
-
-
END
-
-
-
-
CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50))
-
-
RETURNS varchar(64) CHARSET utf8
-
-
DETERMINISTIC
-
-
BEGIN
-
-
UPDATE MYCAT_SEQUENCE SET current_value = current_value + increment WHERE name = seq_name;
-
-
RETURN mycat_seq_currval(seq_name);
-
-
END
-
-
-
-
CREATE FUNCTION mycat_seq_setval(p_seq_name VARCHAR (50),p_value INTEGER)
-
-
RETURNS varchar(64) CHARSET utf8
-
-
DETERMINISTIC
-
-
BEGIN
-
-
UPDATE MYCAT_SEQUENCE SET current_value = p_value WHERE NAME = p_seq_name;
-
-
RETURN mycat_seq_currval(seq_name);
-
-
END
3、在需要分片的表上,在SQL语句时,需要指定,类似于:
insert into es_order( id,order_no ,其他字段) values ( next value for MYCATSEQ_GLOBAL,'20160828161720001',其他字段 )
文章来源: blog.csdn.net,作者:中间件兴趣圈,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/prestigeding/article/details/52702057
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)