数据库唯一主键的实现主要是利用数据库中主键唯一约束的特性,一般来说唯一主键比较适用于“插入”时的幂等性,其能保证一张表中只能存在一条带该唯一主键的记录。

使用数据库唯一主键完成幂等性时需要注意的是,该主键一般来说并不是使用数据库中自增主键,而是使用分布式 ID 充当主键,这样才能能保证在分布式环境下 ID 的全局唯一性。

适用操作

  • 插入操作
  • 删除操作

使用限制

  • 需要生成全局唯一主键 ID;

主要流程

主要流程如下:

  • 客户端执行创建请求,调用服务端接口。
  • 服务端执行业务逻辑,生成一个分布式 ID,将该 ID 充当待插入数据的主键,然 后执数据插入操作,运行对应的 SQL 语句。
  • 服务端将该条数据插入数据库中,如果插入成功则表示没有重复调用接口。如果抛出主键重复异常,则表示数据库中已经存在该条记录,返回错误信息到客户端。

数据库唯一主键如何实现幂等性?相关推荐

  1. 分布式数据库中全局唯一主键

    [相关文章] <分布式数据库中全局唯一主键生成策略的设计与实现> <activiti5.10解决分布式集群部署的主键问题> <分布式环境下数据库主键方案> < ...

  2. 数据库模型设计——主键的设计

    在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键.而对于一个表,由两部分组成:主键和属性.主键的简单定义就是表中为每一行数据的唯一标识.其实更准确的说法,每一行数据 ...

  3. Ticket 服务: 一种经济的分布式唯一主键生成方案

    2019独角兽企业重金招聘Python工程师标准>>> MySQL分库分表早已经不是什么新鲜话题了.甚至已经成了说到MySQL就会说到的话题.在一张表中,MySQL提供了原生的自增主 ...

  4. 数据库的主键和外键总结

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如 学生表(学号,姓名,性别,班级)         ...

  5. oracle唯一索引能删除吗,Oracle:ora-02429:无法用于删除强制唯一/主键的索引 解决...

    今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONS ...

  6. 数据库加主键sql_SQL数据库设计:选择主键

    数据库加主键sql There are a couple of rules to follow when choosing a primary key for a table: all records ...

  7. Java生成唯一主键

    一般有时候我们需要生成唯一主键id,如果数据库是mysql我们可以使用主键自增,如果是oracle我们可以创建触发器或者序列,如果不借助数据库我们也可以在java层面自己生成唯一主键. 使用随机数: ...

  8. 淘宝数据库,主键如何设计的?

    聊一个实际问题:淘宝的数据库,主键是如何设计的? 某些错的离谱的答案还在网上年复一年的流传着,甚至还成为了所谓的MySQL军规.其中,一个最明显 的错误就是关于MySQL的主键设计. 大部分人的回答如 ...

  9. (转载)MySQL数据库的主键和外键详解

    主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...

最新文章

  1. 《计算机组成原理》第04章在线测试
  2. [UE4]子控件Child Widget顶层容器选择
  3. java魔兽猎人_Java基于Swing实现的打猎射击游戏代码
  4. 一篇极好的 CSS 教程
  5. ks检验正态分布结果_KS检验及其在机器学习中的应用
  6. Visual Studio 2015正式企业(Enterprise)版
  7. 从Clarifai的估值聊聊深度学习
  8. C++灵活易错特性-02
  9. 太强了,神州7号发射flash全程模拟!
  10. CefSharp入门-winform
  11. 高等数学学习笔记(1)——微分方程解法公式
  12. 图形学基础|景深效果(Depth of Field/DOF)
  13. 管理变量、机密和事实
  14. 2017中国云计算技术大会将于5月18-19日在京召开
  15. python玩微信小程序游戏_使用python实现微信小程序自动签到功能
  16. 立创eda学习笔记二十二:如何修改pcb网络颜色?
  17. C2: 宽基窄基 场内场外
  18. VUE实现下载文件,避免浏览器默认直接打开文件
  19. JAVA实现在线多人编辑文档,PageOffice---实现多人同时编辑一份文档
  20. python发送邮件时报: Error: need RCPT command

热门文章

  1. centos7防火墙操作
  2. RabbitMQ操作代码封装
  3. CSS float的相关图文详解(二)
  4. Flask == scoped_session
  5. Objective-C 内存管理机制
  6. 2 宽度优先爬虫和带偏好的爬虫(4)
  7. golang go 语言在 window下执行命令 获取本地ip
  8. 【SpringBoot】SpingBoot整合AOP
  9. RPA如何助力企业解决人才短缺难题?
  10. MyBatis 源码分析-技术分享