并发写入

caoyang0299 2017-03-02 09:35:12
程序往数据库写入数据,
我手工定时往数据库里写入数据,
导致有时,程序写入时,提示主键重复,
求指点,谢谢!
...全文
217 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2017-03-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Merry0101 的回复:][/Quote]
[Quote=引用 12 楼 jinfengyiye 的回复:][/Quote]
几位都没搞清楚状况:程序不是楼主的,然后TA在系统的规则外非法插入数据
你们觉得这样的操作应该要设法成功?
有需求找开发对应啊!玩坏数据怪谁?
Andy-W 2017-03-02
  • 打赏
  • 举报
回复
引用 3 楼 caoyang0299 的回复:
是个id,int型,我写入的时候,取最大的id+10,写入 程序那边怎么写入的不清楚
个人觉得你先去与程序那边了解下他们那样是如何取新的id值插入的。 你这边,可以先从语句上考虑,取id的时候是否可以降低事务隔离,来解决并发的问题。
xdashewan 2017-03-02
  • 打赏
  • 举报
回复
引用 5 楼 caoyang0299 的回复:
程序代码不清楚,也改不了, 自增长,程序该出错啦。
主键是程序生成并传入,那么这就是程序的问题或者bug,和你数据库并没有关系
caoyang0299 2017-03-02
  • 打赏
  • 举报
回复
程序代码不清楚,也改不了, 自增长,程序该出错啦。
㤁孞 2017-03-02
  • 打赏
  • 举报
回复
引用 3 楼 caoyang0299 的回复:
是个id,int型,我写入的时候,取最大的id+10,写入 程序那边怎么写入的不清楚
那就把自增长设置成增加10
caoyang0299 2017-03-02
  • 打赏
  • 举报
回复
是个id,int型,我写入的时候,取最大的id+10,写入 程序那边怎么写入的不清楚
卖水果的net 版主 2017-03-02
  • 打赏
  • 举报
回复
那得看你的数据是怎么写入的,表的主键是什么,现有的数据有什么。
二月十六 版主 2017-03-02
  • 打赏
  • 举报
回复
把主键设置为自增,然后插入数据的时候不插入主键
gw6328 2017-03-02
  • 打赏
  • 举报
回复
不用你计算,设置自增id即可,如果你要程序计算 那么取id的方法要 单线程处理。
0与1之间 2017-03-02
  • 打赏
  • 举报
回复
那你每次插入数据的时候做个判断吧
Tiger_Zhao 2017-03-02
  • 打赏
  • 举报
回复
这有什么好讨论的。
既然你不知道程序如何生成id的,那么你手工插入数据就属于非法操作。
不愿意和开发人员沟通,你的行为就是出于设计外的非法目的,出任何问题后果自负。
pensheng 2017-03-02
  • 打赏
  • 举报
回复
max(id)+1 嘛,然后加上事务,有错误的时候回滚
caoyang0299 2017-03-02
  • 打赏
  • 举报
回复
程序是不清楚,是别人的 你这边,可以先从语句上考虑,取id的时候是否可以降低事务隔离,来解决并发的问题。 这块应该怎么弄呢

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧