日期:2014-05-19  浏览次数:20486 次

同时并发提交数据(insert)~~~
如果有n多用户同时插入数据在一个张表中,可有多种方式保证数据的完整性?
请给出完整code...
谢谢~

------解决方案--------------------
用事务

BEGIN TRANSACTION
----语句

COMMIT

------解决方案--------------------
不是,比如说你的主键是id号 取最大值
若当前最大值为 10000
下一次插入时应该为10001
如果现在有10 个用户,他们可能取到的最大值都是10000
所以他们认为他们应该插入是ID应该为10001
而事实上只有一个用户可以成功,也就是哪个最早提交的,
其他用户都不会成功,事务回滚了,
------解决方案--------------------
你也可以在提交的时候再重新生成一下你的主键列,那样可能会好一点
------解决方案--------------------

--用事务


--当事务中的任意一条sql出错时,确保整个事务回滚
set xact_abort on

begin transaction


--语句

commit