同时获取最大ID,Insert into怎么执行

问题描述

目前有个表,里面sysid是唯一的,但是:这个sysid不是自增的,并且,此字段是不允许修改成自增的。现在有N多人,要从这个表里取sysid最大,然后insertinto到表里数据。有人手快,有人手慢,但是当有两个或者更多人同时获取到同样的最大sysid+1后,insertinto执行一条后,剩下的就不会执行了。请问这种情况怎么解决??我写了一个sql语句,大家看看能不能解决。declare@idint;select@id=max(ID)+1from表;insertinto表(ID,其他字段)values(@id,"+其他字段值+")谢谢大家。

解决方案

解决方案二:
你在新增时对那个表进行表锁不就行了?
解决方案三:
引用1楼starfd的回复:

你在新增时对那个表进行表锁不就行了?

同意,使用数据库锁。你搜索一下“数据库锁机制”就知道是怎么的了。
解决方案四:
我是通过建立一个UID不重复字段,通过返回这个字段,就不会混淆用户间的数据
解决方案五:
通常是写个额外的服务,用来计数当要插入id前,先向这个服务请求一个
解决方案六:
表锁?还不会,哈。我试试。还有没有其他方法??
解决方案七:
或者将你这段sql写成事务,通过事务锁来保证同一时间只能有一段selectmax执行

时间: 2024-11-10 07:04:18

同时获取最大ID,Insert into怎么执行的相关文章

如何从mssqlserver2005中获取checkbox的id值,并执行删除

问题描述 如何从mssqlserver2005中获取checkbox的id值,并执行删除.每当我选中一个checkbox值或者两个时,按删除键则删除,单个就执行单个,类推.并且页面也刷新一下,等于返回当前页面一样.当点击删除按钮来个js特效提醒下,是否确认删除,若是就删除,刷新了当前的页面.按否的话,停留当前页面. 解决方案 解决方案二:该回复于2014-05-09 16:14:14被版主删除

Shell脚本中获取进程ID的方法

 这篇文章主要介绍了Shell脚本中获取进程ID的方法,我想要知道运行中脚本子shell的进程id,我该如何在shell脚本中得到PID,阅读本文即可找到你想要答案,需要的朋友可以参考下     提问: 我想要知道运行中脚本子shell的进程id.我该如何在shell脚本中得到PID. 当我在执行shell脚本时,它会启动一个叫子shell的进程.作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为"批处理进程"). 在某些情况下,你也许想要知道运行中

nhibernate中,新增一条数据,主键id为自增,添加成功后,如何获取此id值

问题描述 nhibernate中,新增一条数据,主键id为自增,添加成功后,如何获取此id值 解决方案 解决方案二:实体.id?解决方案三:哥们,我刚刚接触nhibernate,刚写出来helloworld,这个问题还没研究出来的.而且貌似nh做的项目许多主键都没有自增的.我手头有个项目就是这样的,我也很苦恼.在csdn上研究这个的好像很少.解决方案四:就是类似存储过程insert后,能返回他的自增Id值在nhibernate里可不可以?不想再重新去find解决方案五:帮你顶解决方案六:只知道S

sqlite-从数据库中获取系列 ID

问题描述 从数据库中获取系列 ID 下面是我在DBAdapter获取id的函数,我想获取所有的ID,然后显示在toast信息的list中.不知道哪里出错了. public Cursor fetchAllIDs() { return mDb.query(DATABASE_TABLE0 new String[] {IDno1} null null null null null); } 在按钮点击事件上调用的下面的函数,我想让 toast 里填充满所有的ID. private void fillDat

关于textview和editview中获取图片ID的问题

问题描述 关于textview和editview中获取图片ID的问题 在textview和editview中都能设置 android:drawableRight="@drawable/XXX" 请问在代码中如何获取该图片的ID 如果有drawableLeft和drawableRight两张图片的话,怎么分别获取ID? 解决方案 android textview获取图片 解决方案二: 通过textview的id就可以控制的上下右左的图片,为啥要获取图片的ID啊 解决方案三: 你是要实现什

spark-sumit后如何获取应用id、状态等信息?

问题描述 现在以stand-alone模式运行,我可以将应用提交,并且在spark的页面上显示.但是,我该如何获取应用id和运行状态等信息呢?我目前的设想是分析spark页面获取内容.但是未免太过繁琐有没有大神可以指点我一下?感激不尽. 解决方案

listview-从ListView selection中获取数据库ID

问题描述 从ListView selection中获取数据库ID 我有一个 ListView 类型的 lv,通过使用 SQL 数据库里的Cursor类型的C构成下拉列表. 当 ListView 中的某一项被选中时,我想获取这列的 ID.如何实现这个功能? 解决方案 假设你使用的是一个 SimpleCursorAdapter ,就应该使用 OnItemClickListener: listView.setOnItemClickListener(new OnItemClickListener() {

radio button-Android中动态添加RadioButton,设置监听获取的id不对啊!

问题描述 Android中动态添加RadioButton,设置监听获取的id不对啊! 这样获取的checkId不对啊! radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group int checkedId) { int id = (int) group.getChildAt(checkedId).getT

c++-关于获取报文ID的问题

问题描述 关于获取报文ID的问题 现在在做can总线通讯,想问接收到can传回来的包,用C++怎么获取它的报文ID,和对报文中不同字节进行解析?

有谁用过angularjs,怎么获取一个id的值

问题描述 有谁用过angularjs,怎么获取一个id的值 input标签中有一个id,我怎么总angularjs取得这个id的值呢 解决方案 <body onload='test()'> <div ng-app="myApp" ng-controller="formCtrl"> <input type="text" id='aaaa' ng-model="user.firstName">&