mycat全局序列号数据库方式

2023-05-16

1、server.xml

<property name="sequnceHandlerType">1</property>

2、schema.xml

<table name="z_test" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2" rule="mod-long"/>
<table name="mycat_sequence" primaryKey="name" dataNode="dn2"/>

3、sequence_db_conf.properties

#sequence stored in datanode
Z_TEST=dn2

4、创建存储步长的表MYCAT_SEQUENCE

DROP TABLE IF EXISTS MYCAT_SEQUENCE;
CREATE TABLE MYCAT_SEQUENCE (name VARCHAR(50) NOT NULL,current_value INT NOT NULL,increment INT NOT NULL DEFAULT 100, PRIMARY KEY(name)) ENGINE=InnoDB;

5、增加步长100的主键数量

INSERT INTO MYCAT_SEQUENCE(name,current_value,increment) VALUES ('Z_TEST', -99, 100);

 6、函数

6.1、获取当前sequence的值

DROP FUNCTION IF EXISTS mycat_seq_currval;
DELIMITER $
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 $
DELIMITER ;

6.2、设置sequence值

DROP FUNCTION IF EXISTS mycat_seq_setval;
DELIMITER $
CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR(50),value INTEGER) RETURNS     varchar(64) CHARSET utf8
DETERMINISTIC
BEGIN
UPDATE MYCAT_SEQUENCE
SET current_value = value
WHERE name = seq_name;
RETURN mycat_seq_currval(seq_name);
END $
DELIMITER ;

6.3、 获取下一个sequence值

DROP FUNCTION IF EXISTS mycat_seq_nextval;
DELIMITER $
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 $
DELIMITER ;

注:表和函数存储过程可任选一主库分库进行操作,设置sequence_db_conf.properties的时候,设置相应的库就可以

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mycat全局序列号数据库方式 的相关文章

随机推荐

  • windows 配置FTP教程

    由于windows版本不同在配置上有部分不一致 xff0c 我这边主要以windows server 2008以及Windows server 2012 做演示 1 Windows 2008 通过 IIS 配置 FTP 操作步骤 IIS的安
  • Windows实例通过IIS如何搭建多个FTP站点

    FTP搭建多个站点可以通过不同的端口号来进行实现 xff0c FTP标准命令端口号为21 xff0c 数据端口为20 第一个FTP站点默认的21端口即可 先进行添加第一个FTP站点 xff0c 选择本机外网IP xff0c 端口默认21 选
  • xubuntu-desktop找不到状态栏怎么办?

    1 右键找到设置中的panel选项 2 找到恢复默认选项 3 点击xfce选项 xff0c 然后点左下角的齿轮按钮 开心不
  • Proxmox ve(PVE) 显示CPU和硬盘温度、UPS信息

    1 安装CPU温度检测软件sensors apt install lm sensors y 传感器探测 xff0c 命令 xff1a sensors detect 全部选择yes即可 xff0c 可能其中一个地方提示 ENTER xff0c
  • Proxmox ve(PVE)开启硬件直通

    1 修改grub文件 vi etc default grub 找到GRUB CMDLINE LINUX DEFAULT 61 34 quiet 34 这行改为 GRUB CMDLINE LINUX DEFAULT 61 34 quiet i
  • HAL库函数IIC

    span class token comment 64 defgroup I2C XferOptions definition I2C XferOptions definition 64 span span class token macr
  • 语音处理:Python实现wav与pcm文件格式转换

    语音处理 xff1a Python实现wav与pcm格式转换 知识点wav转pcmpcm转wav参考资料 知识点 wave包的读写及参数设置文件路径操作拼接音频相关参数了解 wav文件存储的参数信息有 xff1a 通道数 采样率 位深 xf
  • 使用js纯代码复制文字、复制html(保留p标签的换行)两种方法

    Copy content of rich editor using Javascript Stack Overflow https stackoverflow com questions 66227056 copy content of r
  • libssl.so.10 & libcrypto.so.10 not found ---ubuntu

    从网上找了许多方法 最后都没有试过 怀疑是ubuntu source的问题 最后下载了 自己编译 https www openssl org source old 1 0 0 openssl 1 0 0f tar gz config sha
  • ubuntu时钟同步配置

    1 手动执行 ntpdate host 2 自动执行 配置文件 xff1a etc systemd timesyncd conf ntp使能 xff1a timedatectl set ntp true 重启时钟服务 xff1a syste
  • 百元买百鸡(C++)

    我国古代数学家张丘建在 算经 一书中曾提出过著名的 百钱买百鸡 问题 xff0c 该问题叙述如下 xff1a 鸡翁一 xff0c 值钱五 xff1b 鸡母一 xff0c 值钱三 xff1b 鸡雏三 xff0c 值钱一 xff1b 百钱买百鸡
  • git 放弃更改常用命令

    1 未add commit git checkout filename path 2 已add未commit git reset HEAD filename 3 放弃已经commit的修改 git reflog查看commit日志 git
  • linux解压缩常见命令

    tar详解 c 建立压缩档案 x xff1a 解压 t xff1a 查看内容 r xff1a 向压缩归档文件末尾追加文件 u xff1a 更新原压缩包中的文件 这五个是独立的命令 xff0c 压缩解压都要用到其中一个 xff0c 可以和别的
  • linux 安装 gcc 方法

    今天安装Linux虚拟机发现竟然没有gcc 感觉是崩溃的 xff0c 上网寻找一下安装方法 xff0c 借鉴总结了一下得出下面步骤 使用root权限下载 sudo yum y install gcc gcc c 43 43 autoconf
  • MFC编程基础(—)

    MFC类的基本层次结构如图所示 xff1a CObject类是MFC提供的绝大多数类的基类 该类完成动态空间的分配和回收 xff0c 支持一般的诊断 出错信息处理和文档序列化等 CCmdTarget类主要负责将系统事件 xff08 消息 x
  • 开启windows10系统组策略更新、开启Windows自动更新、关闭自动更新

    win 43 R键打开运行 xff0c 输入regedit 按路径 计算机 HKEY LOCAL MACHINE SOFTWARE Policies Microsoft Windows WindowsUpdate AU 找到NoAutoUp
  • linux 中 /etc/systemd/system和/usr/lib/systemd/system 的区别

    每一个 Unit xff08 服务等 xff09 都有一个配置文件 xff0c 告诉 Systemd 怎么启动这个 Unit Systemd 默认从目录 etc systemd system 读取配置文件 但是 xff0c 里面存放的大部分
  • Vue3使用axios请求数据后使用v-for显示不出数据

    getAccount let that 61 this axios url 39 http localhost 8080 api GetAllUniAccounts 39 method 39 post 39 then res 61 gt t
  • Axios请求中Content-Type的使用总结

    Axios请求头中的Content Type常见的有3种 xff1a 1 Content Type application json 2 Content Type application x www form urlencoded 3 Co
  • mycat全局序列号数据库方式

    1 server xml lt property name 61 34 sequnceHandlerType 34 gt 1 lt property gt 2 schema xml lt table name 61 34 z test 34