社区
C#
帖子详情
关于数据库插入的问题
于吉小妖
2010-06-21 10:17:01
系统设计是这样的,在新插入一条数据的时候 先查找数据库中某一字段的数值,在此基础上+1,如:当插入的时候查到数据库某一字段的数值是333001,那么插入的这条数据此字段的数值就是333002,但是此会造成一个问题,当两个用户同时插入的时候 就可能会产生2条333002。如何解决这个问题。
备注:不能使用自增长。不使用随机数,随机数会导致数值无规律。
...全文
140
22
打赏
收藏
关于数据库插入的问题
系统设计是这样的,在新插入一条数据的时候 先查找数据库中某一字段的数值,在此基础上+1,如:当插入的时候查到数据库某一字段的数值是333001,那么插入的这条数据此字段的数值就是333002,但是此会造成一个问题,当两个用户同时插入的时候 就可能会产生2条333002。如何解决这个问题。 备注:不能使用自增长。不使用随机数,随机数会导致数值无规律。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gohappy2008
2010-06-22
打赏
举报
回复
SQL Server为我们提供了UniqueIdentifier数据类型,并提供了一个生成函数NEWID( ),使用NEWID( )可以生成一个唯一的UniqueIdentifier。UniqueIdentifier在数据库中占用16个字节,出现重复的概率非常小,以至于可以认为是0。我们经常从注册表中看到类似{45F0EB02-0727-4F2E-AAB5-E8AEDEE0CEC5}的东西实际上就是一个UniqueIdentifier,Windows用它来做COM组件以及接口的标识,防止出现重复。在.NET里管UniqueIdentifier称之为GUID(Global Unique Identifier)。在C#中可以使用如下命令生成一个GUID:
Guid u = System.Guid.NewGuid();
一切为了你
2010-06-22
打赏
举报
回复
使用事务!
zhanggd614
2010-06-22
打赏
举报
回复
或者用存储过程这样
zhanggd614
2010-06-22
打赏
举报
回复
插入数据的时候先生成一个自加一的ID,再通过ID分配你要的流水账号
老Key
2010-06-22
打赏
举报
回复
在第二次插入的时候,在去读取一次,如果又了333002,就在自动加1,或者不让插入即可
如菜鸟
2010-06-22
打赏
举报
回复
我也想知道呢,期待解决
于吉小妖
2010-06-22
打赏
举报
回复
mark 继续
maxwellno1
2010-06-22
打赏
举报
回复
[Quote=引用 7 楼 gxingmin 的回复:]
插入时加锁,用户甲插入时,用户乙不能操作
[/Quote]
正解
宇峰科技
2010-06-22
打赏
举报
回复
在插入时再获取新的ID,然后+1,最好用存储过程比较好
s8975565
2010-06-22
打赏
举报
回复
[Quote=引用 19 楼 s8975565 的回复:]
在数据库的字段上加上UNIQUE 如果执行失败 让他再加1
[/Quote]
给分啊 O(∩_∩)O~
s8975565
2010-06-22
打赏
举报
回复
在数据库的字段上加上UNIQUE 如果执行失败 让他再加1
-深白色-
2010-06-22
打赏
举报
回复
每次插入前lock住表,先检查id是否已经存在,如果存在,+1,如果还存在,继续+1直到不存在
插入完成以后释放锁。这个用存储过程很容易实现。
这样可确保唯一性,但是锁表的时候,如果插入动作很频繁,可能会导致性能上的一些损失。
yanele
2010-06-22
打赏
举报
回复
[Quote=引用 12 楼 guoluren_kang 的回复:]
在第二次插入的时候,在去读取一次,如果又了333002,就在自动加1,或者不让插入即可
[/Quote]
每次做插入动作前进行检查数据库里的最大编号(往往单据上之前会自动生成一个编号),
如果没有重复就直接插入数据,如果单据之前产生的号被占用,自动在数据库里最大编号上增加1,
当前最好增加的号能给用户以提示,并刷新界面,否则在原单据上进行修改就不好处理了!
zhuming8882000
2010-06-21
打赏
举报
回复
[Quote=引用 7 楼 gxingmin 的回复:]
插入时加锁,用户甲插入时,用户乙不能操作
[/Quote]
具体给个例子行不?
如果用户很多,一个人占着页面的话,是不是其他用户都不可以插入数据了?
gxingmin
2010-06-21
打赏
举报
回复
插入时加锁,用户甲插入时,用户乙不能操作
于吉小妖
2010-06-21
打赏
举报
回复
顶下 接受更多的建议 谢ls
yanele
2010-06-21
打赏
举报
回复
路过,期待解决方法。
shixiujin
2010-06-21
打赏
举报
回复
[Quote=引用 2 楼 tkascor 的回复:]
使用事务. 下一次插入, 要上一次完成之后才能插入~
[/Quote]
支持...
zhuming8882000
2010-06-21
打赏
举报
回复
我也遇到了楼主的问题,我用的方法是写了一个存储过程,只有在插入的时刻才会把新的数据插入到数据库中,也就是事先不会返回一个这样的值,这样的情况只有在两个用户同时插入一条数据时 可能会报错。自己仍然在想解决方案中,目前这种方法多个用户只要不在同一时刻(非常精确的一样)就不会出现问题。
2楼的请问下事务的怎么样实现?
tkscascor
2010-06-21
打赏
举报
回复
使用事务. 下一次插入, 要上一次完成之后才能插入~
加载更多回复(2)
mysql
数据库
插入
图片_MySQL
数据库
之
插入
显示图片
说明:功能:往MySQL
数据库
插入
并显示图片;验证:执行
插入
功能后,我把该图片进行了本地的删除,然后执行显示功能,可以显示出来。
数据库
该字段类型:longblob原型部分
数据库
引用部分/** 作者:周丽同* 功能:...
数据库
基础之
插入
数据
INSERT用来将行
插入
(或添加)到
数据库
表。
插入
有几种方式:
插入
完整的行;
插入
行的一部分;
插入
某些查询的结果。 提示:
插入
及系统安全 使用INSERT语句可能需要客户端/服务器DBMS中的特定安全权限。在你...
Pandas连接
数据库
插入
数据
Pandas连接
数据库
插入
数据 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录Pandas连接
数据库
插入
数据前言一、...
提高
数据库
插入
效率
插入
数据,是MySQL
数据库
的基本任务。不过不要小看这个
插入
数据的动作。在
数据库
性能优化上,可以在这上面做很...针对这块内容,笔者认为
数据库
工程师在应用程序与
数据库
设计时,需要注意如下几个细节
问题
。 细节
解决
数据库
插入
数据乱码
问题
Today,在后台对
插入
方法进行测试时,出现
数据库
数据乱码
问题
。以下我给出几种解决方法: 先说下我后台测试的解决方法: 在链接
数据库
时,添加编码格式 如下: 下面说别的解决方法 1、我用的是idea,设置全局...
C#
110,545
社区成员
642,580
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章