位置: 编程技术 - 正文

基于MySql的扩展功能生成全局ID(mysql 扩展)

编辑:rootadmin

推荐整理分享基于MySql的扩展功能生成全局ID(mysql 扩展),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysqli扩展,mysql文件的扩展名是什么,基于mysql的数据库,mysql的扩展名,mysql文件的扩展名是什么,在mysql扩展中,mysql_query()函数的作用是,mysql 扩展,mysql 扩展字段,内容如对您有帮助,希望把文章链接给更多的朋友!

本文利用 MySQL的扩展功能 REPLACE INTO 来生成全局id,REPLACE INTO和INSERT的功能一样,但是当使用REPLACE INTO插入新数据行时,如果新插入的行的主键或唯一键(UNIQUE Key)已有的行重复时,已有的行会先被删除,然后再将新数据行插入(REPLACE INTO 是原始操作)。

建立类似下面的表:

当需要获得全局唯一ID时,执行下面的SQL语句:

第一次执行这个语句后,ticket表将包含以下数据:

+--------+------+ | id | stub | +--------+------+ | 1 | a | +--------+------+

以后再次执行前面的语句,stub字段值为'a'的行已经存在,所以MySQL会先删除这一行,再插入。因此,第二次执行后,ticket表还是只有一行数据,只是id字段的值为2。这个表将一直只有一行数据。

更棒的方法:

基于MySql的扩展功能生成全局ID(mysql 扩展)

比如,只需要一张ticket表就可以为所有的业务表提供各自连续的ID。下面,来看一下我们的方法。首先来看一下表结构:

注意区别,id字段不是自增的,也不是主键。在使用前,我们需要先插入一些初始化数据:

接下来,我们可以通过执行下面的SQL语句来获得新的照片ID:

我们执行了一个更新操作,将id字段增加1,并将增加后的值传递到LAST_INSERT_ID函数,从而指定了LAST_INSERT_ID的返回值。

实际上,我们不一定需要预先指定序列的名字。如果我们现在需要一种新的序列,我们可以直接执行下面的SQL语句:

这里,我们采用了INSERT … ON DUPLICATE KEY UPDATE这个MySQL扩展,这个扩展的功能也和INSERT一样插入一行新的记录,但是当新插入的行的主键或唯一键(UNIQUE Key)和已有的行重复时,会对已有行进行UPDATE操作。

当我们第一次执行上面的语句时,因为还没有name为'new_business'的字段,所以正常的执行了插入操作,需要注意的是通过这种方式获取的序列起始值为0,而不是1。因为第一次执行时,没有执行UPDATE,所以也没有为LAST_INSERT_ID传递值,我们也没有自增字段,所以SELECT LAST_INSERT_ID()将返回0。不过这个应该不是什么大问题。

UPDATE: 这个方法更容易解决单点问题,也不局限于两个服务器,只要对不同的服务器设置不同的初始值(但必须是连续的),然后将增量变为服务器数就行了。

以上内容是基于MySql的扩展功能生成全局ID的相关资料,希望大家喜欢。

MySQL用作备份还原的导入和导出命令用法整理 mysqldump命令行导出数据库:1,进入MySQL目录下的bin文件夹:cdMySQL中到bin文件夹的目录如我输入的命令行:cdC:ProgramFilesMySQLMySQLServer4.1bin2,导出数据库

分享Mysql命令大全 1、连接Mysql格式:mysql-h主机地址-u用户名-p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysqlbin,再键入命令mysql-uroot-p,回车后提

MySQL中几种数据统计查询的基本使用教程 统计平均数SELECTAVG()FROM语法用于从数据表中统计数据平均数。语法:SELECTAVG(column)FROMtb_name该SQL语法用于统计某一数值类型字段的平均数,AVG()内不能是

标签: mysql 扩展

本文链接地址:https://www.jiuchutong.com/biancheng/312426.html 转载请保留说明!

上一篇:Mysql全局ID生成方法(mysql自动生成id)

下一篇:MySQL用作备份还原的导入和导出命令用法整理(mysql备份原理)

  • 原始凭证填写过程
  • 管理费用中的税金包括哪些
  • 储值卡金额算什么科目
  • 增值税税控服务费的账务处理
  • 支付宝过路费开票小程序
  • 工资 小数点
  • 土地所有权可以出资吗
  • 工会应付下级经费
  • 税局代开专票对方隔月退回重开如何做账务处理呢?
  • 加权平均净资产收益率反映什么
  • 汽车道路救援费用多少
  • 分公司帮总公司付款怎么做分录
  • 经营租赁发生改良费用的会计分录如何处理?
  • 事业单位建账期初数银行存款余额填在哪个科目
  • 印花税合同金额和结算金额不一致
  • 简易征收红字发票怎么在报表中表现
  • 固定资产改造计入什么科目
  • 公司注销留抵税金能退税吗
  • 无偿取得土地使用权的会计分录
  • 多缴个税账务处理
  • 变动成本总额怎么求单位变动成本
  • 企业押金怎么管理
  • 员工劳务报酬分录
  • 森林植被恢复费标准
  • Win11文件夹怎么加密设置密码
  • mt-mon.exe
  • mssvr.exe - mssvr是什么进程 什么用
  • hg8321r路由
  • 保险公司应收账款管理现状及存在的问题
  • php用mysql连接数据库并查询
  • php pdo连接mysql
  • 头歌实践教学平台官网
  • vue3 拖拽
  • pinf命令
  • 服务业小规模纳税人税率
  • echarts 官网
  • 如何处理经营租赁合同
  • 物流货运发票要交税吗
  • 银行账户维护费怎么做账
  • 数据库平移
  • php出现乱码
  • dedecms标签怎么用
  • 增值税普票可以开给个人吗
  • 下列项目的进项税额可以从销售税额中抵扣的是
  • 使用sqlserver创建数据库和删除数据库的实验总结
  • 出口货物退货如何入账
  • 结转以前年度成本分录怎么写
  • 缴纳车辆购置税有发票吗
  • 年终汇算清缴的税种
  • 存货报废计入
  • 一年以上的借款是长期借款吗
  • 土地使用权如何计入房产原值交房产税时间
  • 企业财务建账应由谁负责
  • 旅游业餐饮业
  • mysql5.7.21安装
  • win2003安装加载阵列卡驱动
  • MYSQL数据库应用
  • centos6.10修改主机名
  • xp系统删除用户账户怎么没有删除键
  • winnook.exe - winnook是什么进程
  • win8的安全中心
  • 邮件版本
  • win8系统切换桌面
  • linux的free命令详解
  • 安装centos7安装位置没有磁盘
  • centos8安装锐速
  • windows8怎么使用
  • win10注册不了账号
  • linux新手入门教程
  • opengl
  • perl \w
  • opengl learn cn
  • android判断横竖屏
  • 简述python语言
  • 手机gpu过度绘制
  • jquery是基于java的吗
  • 绿化养护的增值税是多少
  • 武汉市契税减免政策
  • 北京市国家税务局网站官网
  • 年度申报个人所得税专项扣除多填了怎么办
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设