广告
返回顶部
首页 > 资讯 > 数据库 >如何屏蔽数据库中自增ID功能
  • 804
分享到

如何屏蔽数据库中自增ID功能

2024-04-02 19:04:59 804人浏览 泡泡鱼
摘要

今天就跟大家聊聊有关如何屏蔽数据库中自增ID功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  在平时的项目开发中,我相信有很大一批人都在用这个数

今天就跟大家聊聊有关如何屏蔽数据库中自增ID功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

  在平时的项目开发中,我相信有很大一批人都在用这个数据库自增ID,用数据库自增ID有利也有弊。平时在开发项目的时候,一般都没有用到数据库的自增ID。下面编程网小编来讲解下如何屏蔽数据库中自增ID功能?

  如何屏蔽数据库中自增ID功能

  解决思路

  1:定义一张表,专门用来存放存所有需要唯一ID的表名称以及该表当前所使用到的ID值。

  2:写一个存储过程,专门用来在上一步的表中取ID值。

  这个思路非常简单,我不作解释了,直接来看看我的实现方法:

  第一步:创建表

  createtabletable_key(table_namevarchar(50)notnullprimarykey,key_valueintnotnull)

  第二步:创建存储过程来取自增ID

  createprocedureup_get_table_key(@table_namevarchar(50),@key_valueintoutput)asbeginbegintrandeclare@keyint--initializethekeywith2set@key=1--whetherthespecifiedtableisexistifnotexists(selecttable_namefromtable_keywheretable_name=@table_name)begininsertintotable_keyvalues(@table_name,@key)--defaulTKEyvlaue:1end--stepincreaseelsebeginselect@key=key_valuefromtable_keywith(nolock)wheretable_name=@table_nameset@key=@key+1--updatethekeyvaluebytablenameupdatetable_keysetkey_value=@keywheretable_name=@table_nameend--setouputvalueset@key_value=@key--committrancommittranif@@error>0rollbacktranend

  对于在表中不存在记录,直接返回一个默认值为1的键值,同时插入该条记录到table_key表中。而对于已存在的记录,key值直接在原来的key基础上加1.

  如何屏蔽数据库中自增ID功能

  总结一下,这种方法非常简单,我说一下它的优缺点。

  优点:

  1:ID值是可控的。用户可以从指定段开始分配ID值,这对于在分布式数据要求同数据同步时,非常方便,很好地解决了ID重复的问题。

  2:在编写程序中,ID值是可见的,比如在再插入关联的记录时,相比使用数据库自增ID的情况下,这种方法不需要在插入一条数据库记录之后,再去得到自增ID值,然再再使用该ID的值来插入关联的记录。我们可以一次性使用事务来插入关联记录。

  3:对于需要批量插入数据时,我们可以改写一下上面的存储过程,返回一个段的开始ID,然后更新表时需要注意,不是原来的简单的递增1,而是递增你想要的插入多少条记录的总数。

  缺点:

  1:效率问题,每次取ID值都需要调用存储过程从数据库中检索一次。对于这种情况,我觉得效率不是很大问题,因为sqlserver会对我们经常调用的存储过程有缓存,再一点,这个表的数据应该不会很大,最多上千条(一个项目中上千个表的情况应该不是很多吧)。所以检索不是什么问题,何况是根据表名来检索(表名列已是主键)。

看完上述内容,你们对如何屏蔽数据库中自增ID功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: 如何屏蔽数据库中自增ID功能

本文链接: https://www.lsjlt.com/news/61691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何屏蔽数据库中自增ID功能
    今天就跟大家聊聊有关如何屏蔽数据库中自增ID功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  在平时的项目开发中,我相信有很大一批人都在用这个数...
    99+
    2022-10-18
  • css中如何实现video屏蔽下载功能
    这篇文章给大家分享的是有关css中如何实现video屏蔽下载功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。虽然简介视频是非付费的,但也不希望会有下载按钮或者可以视频另存为,所...
    99+
    2022-10-19
  • MySQL数据库中怎么实现序列自增功能
    MySQL数据库中怎么实现序列自增功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建sequence表CREATE TABL...
    99+
    2022-10-18
  • 如何解决mybatis-plus添加数据时id自增问题
    小编给大家分享一下如何解决mybatis-plus添加数据时id自增问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!mybatis-plus添加数据时id自增问题mybatis-plus插入数据,id自增列变的很长.比如...
    99+
    2023-06-26
  • 使用mybatis进行数据插入时如何返回自增的id
    如何解决问题 具体问题解决办法注意点 具体问题 当我们存储数据时,有时候id是选择让数据库自增的 。但前端如果需要当前添加数据的id时,我们在代码上就无法返回了。 解决办法 在 MyBatis 中,可以通过配置来确保数据库操...
    99+
    2023-08-21
    mybatis java 数据库
  • MyBatis如何获取数据库自生成的主键Id
    这篇文章将为大家详细讲解有关MyBatis如何获取数据库自生成的主键Id,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。MyBatis获取数据...
    99+
    2022-10-18
  • springBoot中如何实现java自动创建数据库表功能
    小编给大家分享一下springBoot中如何实现java自动创建数据库表功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SpringBoot环境启动项目创建数据...
    99+
    2023-06-20
  • mysql如何实现定时自动备份数据库功能
    这篇文章主要介绍mysql如何实现定时自动备份数据库功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种,数据跑在服务器上,如果只想定时把数据库备份放在服务器(此处服务器系统为centos7)上,可如下设置:首先...
    99+
    2023-06-20
  • PyQt5如何实现数据的增删改查功能
    这篇文章主要介绍“PyQt5如何实现数据的增删改查功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PyQt5如何实现数据的增删改查功能”文章能帮助大家解决问题。话不多说,还是先来梳理一下需要的第三...
    99+
    2023-06-29
  • 【MySql】如何重置MySQL数据库表中的id
     方法一:原来的id取消自增和主键,只用于表格的排序。 新插入一个id2,自然会根据自增重新排列。删除id,id2改id即可。 alter table 你的表名字 drop 你的表的主键;alter table 你的表的名字 ad...
    99+
    2023-09-13
    mysql 数据库 sql
  • 数据库功能测试如何做
    数据库功能测试是一种用于验证数据库系统的功能是否按照预期工作的测试方法。以下是进行数据库功能测试的步骤: 确定测试目标:确定需要...
    99+
    2023-10-21
    数据库
  • 如何搭建MyBatis-Plus框架并进行数据库增删改查功能
    本篇内容主要讲解“如何搭建MyBatis-Plus框架并进行数据库增删改查功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何搭建MyBatis-Plus框架并进行数据库增删改查功能”吧!搭建...
    99+
    2023-06-09
  • PHP8中如何通过Attributes增强自定义类的功能?
    PHP8中如何通过Attributes增强自定义类的功能?随着PHP8的发布,引入了新的特性——Attributes(属性)。通过Attributes,开发者可以在类、方法和属性上添加额外的元数据,以增强自定义类的功能和灵活性。在本文中,我...
    99+
    2023-10-24
    PHP Attributes 自定义类功能
  • 数据库中如何创建ID和权限控制
    这篇文章将为大家详细讲解有关数据库中如何创建ID和权限控制,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 USE [master]GOCRE...
    99+
    2022-10-18
  • 数据库如何增加表中字段
    小编给大家分享一下数据库如何增加表中字段,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:1、使用“ALTER TABLE 表...
    99+
    2022-10-18
  • Exchange 2016如何实现数据库副本自动分配新功能
    这篇文章将为大家详细讲解有关Exchange 2016如何实现数据库副本自动分配新功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   &...
    99+
    2022-10-19
  • Oracle+mybatis如何实现对数据的增删改查功能
    这篇文章主要介绍了Oracle+mybatis如何实现对数据的增删改查功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是 MyBati...
    99+
    2022-10-18
  • 如何用注解的方式实现Mybatis插入数据时返回自增的主键Id
    目录用注解实现Mybatis插入数据返回自增的主键Id设计数据库表设计Java bean对象添加mapper接口Mybatis注解增(返回自增id) 删查改以及(一对一,一对多,多对...
    99+
    2022-11-13
  • 如何在MySQL中使用PHP实现数据的增删改查功能
    如何在MySQL中使用PHP实现数据的增删改查功能概要MySQL是一种开源的关系型数据库管理系统,而PHP是一种流行的服务器端脚本语言。结合使用MySQL和PHP,我们可以轻松实现数据库的增删改查功能。本文将向您介绍如何在MySQL中使用P...
    99+
    2023-10-22
    MySQL PHP 增删改查
  • 如何使用MongoDB实现数据的图数据库功能
    如何使用MongoDB实现数据的图数据库功能近年来,随着数据量的不断增长和复杂关系的日益重要,图数据库的应用变得越来越广泛。传统关系型数据库面对复杂的图状数据结构和大量的关系查询时,性能受限,而图数据库则能更好地解决这些问题。本文将介绍如何...
    99+
    2023-10-22
    数据 图数据库 MongoDB
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作