数据库唯一主键如何实现幂等性?
数据库唯一主键的实现主要是利用数据库中主键唯一约束的特性,一般来说唯一主键比较适用于“插入”时的幂等性,其能保证一张表中只能存在一条带该唯一主键的记录。
使用数据库唯一主键完成幂等性时需要注意的是,该主键一般来说并不是使用数据库中自增主键,而是使用分布式 ID 充当主键,这样才能能保证在分布式环境下 ID 的全局唯一性。
适用操作
- 插入操作
- 删除操作
使用限制
- 需要生成全局唯一主键 ID;
主要流程
主要流程如下:
- 客户端执行创建请求,调用服务端接口。
- 服务端执行业务逻辑,生成一个分布式
ID
,将该 ID 充当待插入数据的主键,然 后执数据插入操作,运行对应的SQL
语句。 - 服务端将该条数据插入数据库中,如果插入成功则表示没有重复调用接口。如果抛出主键重复异常,则表示数据库中已经存在该条记录,返回错误信息到客户端。
数据库唯一主键如何实现幂等性?相关推荐
- 分布式数据库中全局唯一主键
[相关文章] <分布式数据库中全局唯一主键生成策略的设计与实现> <activiti5.10解决分布式集群部署的主键问题> <分布式环境下数据库主键方案> < ...
- 数据库模型设计——主键的设计
在数据库设计时,主要就是对实体和关系的设计,实体表现出来就是表,关系表现出来就是外键.而对于一个表,由两部分组成:主键和属性.主键的简单定义就是表中为每一行数据的唯一标识.其实更准确的说法,每一行数据 ...
- Ticket 服务: 一种经济的分布式唯一主键生成方案
2019独角兽企业重金招聘Python工程师标准>>> MySQL分库分表早已经不是什么新鲜话题了.甚至已经成了说到MySQL就会说到的话题.在一张表中,MySQL提供了原生的自增主 ...
- 数据库的主键和外键总结
一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) ...
- oracle唯一索引能删除吗,Oracle:ora-02429:无法用于删除强制唯一/主键的索引 解决...
今天打算删除orcale数据库中无用的表空间,发现报错,查资料删除,写个过程留着备用. 1.drop tablespace dldata INCLUDING CONTENTS CASCADE CONS ...
- 数据库加主键sql_SQL数据库设计:选择主键
数据库加主键sql There are a couple of rules to follow when choosing a primary key for a table: all records ...
- Java生成唯一主键
一般有时候我们需要生成唯一主键id,如果数据库是mysql我们可以使用主键自增,如果是oracle我们可以创建触发器或者序列,如果不借助数据库我们也可以在java层面自己生成唯一主键. 使用随机数: ...
- 淘宝数据库,主键如何设计的?
聊一个实际问题:淘宝的数据库,主键是如何设计的? 某些错的离谱的答案还在网上年复一年的流传着,甚至还成为了所谓的MySQL军规.其中,一个最明显 的错误就是关于MySQL的主键设计. 大部分人的回答如 ...
- (转载)MySQL数据库的主键和外键详解
主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...
最新文章
- 《计算机组成原理》第04章在线测试
- [UE4]子控件Child Widget顶层容器选择
- java魔兽猎人_Java基于Swing实现的打猎射击游戏代码
- 一篇极好的 CSS 教程
- ks检验正态分布结果_KS检验及其在机器学习中的应用
- Visual Studio 2015正式企业(Enterprise)版
- 从Clarifai的估值聊聊深度学习
- C++灵活易错特性-02
- 太强了,神州7号发射flash全程模拟!
- CefSharp入门-winform
- 高等数学学习笔记(1)——微分方程解法公式
- 图形学基础|景深效果(Depth of Field/DOF)
- 管理变量、机密和事实
- 2017中国云计算技术大会将于5月18-19日在京召开
- python玩微信小程序游戏_使用python实现微信小程序自动签到功能
- 立创eda学习笔记二十二:如何修改pcb网络颜色?
- C2: 宽基窄基 场内场外
- VUE实现下载文件,避免浏览器默认直接打开文件
- JAVA实现在线多人编辑文档,PageOffice---实现多人同时编辑一份文档
- python发送邮件时报: Error: need RCPT command