﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-Java天空</title><link>http://www.blogjava.net/sky2227/</link><description /><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 07:36:02 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 07:36:02 GMT</pubDate><ttl>60</ttl><item><title>数据库中的-脏读，幻读，不可重复读[转]</title><link>http://www.blogjava.net/sky2227/archive/2009/05/18/271281.html</link><dc:creator>sky2227</dc:creator><author>sky2227</author><pubDate>Mon, 18 May 2009 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/sky2227/archive/2009/05/18/271281.html</guid><wfw:comment>http://www.blogjava.net/sky2227/comments/271281.html</wfw:comment><comments>http://www.blogjava.net/sky2227/archive/2009/05/18/271281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/sky2227/comments/commentRss/271281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sky2227/services/trackbacks/271281.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">数据库带来的并发问题包括：</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span><span style="font-size: 12pt; font-family: 宋体;">  </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1.</span><span style="font-size: 12pt; font-family: 宋体;">丢失或覆盖更新。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">(</span><span style="font-size: 12pt; font-family: 宋体;">幻像读</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">) </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span><span style="font-size: 12pt; font-family: 宋体;">  </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2.</span><span style="font-size: 12pt; font-family: 宋体;">未确认的相关性（脏读）。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span><span style="font-size: 12pt; font-family: 宋体;">  </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">3.</span><span style="font-size: 12pt; font-family: 宋体;">不一致的分析（非重复读）。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">详细描述如下：</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<h2 style="margin: auto 0cm;"><font face="宋体">一<span lang="EN-US">.</span>丢失更新</font></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 16.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">当两个或多个事务选择同一行，然后基于最初选定的值更新该行时，会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新，这将导致数据丢失。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> </span><span style="font-size: 12pt; font-family: 宋体;">  </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 16.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">e.g.</span><span style="font-size: 12pt; font-family: 宋体;">事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">A</span><span style="font-size: 12pt; font-family: 宋体;">和事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">B</span><span style="font-size: 12pt; font-family: 宋体;">同时修改某行的值，</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 16.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;1.</span><span style="font-size: 12pt; font-family: 宋体;">事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">A</span><span style="font-size: 12pt; font-family: 宋体;">将数值改为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1</span><span style="font-size: 12pt; font-family: 宋体;">并提交</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.</span><span style="font-size: 12pt; font-family: 宋体;">事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">B</span><span style="font-size: 12pt; font-family: 宋体;">将数值改为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2</span><span style="font-size: 12pt; font-family: 宋体;">并提交。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">这时数据的值为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2</span><span style="font-size: 12pt; font-family: 宋体;">，事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">A</span><span style="font-size: 12pt; font-family: 宋体;">所做的更新将会丢失。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 21pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp;&nbsp; 解决办法：对行加锁，只允许并发一个更新事务。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<h2 style="margin: auto 0cm;"><font face="宋体">二<span lang="EN-US">.</span>未确认的相关性（脏读）</font></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 8pt; font-family: 宋体;">  </span><span style="font-size: 12pt; font-family: 宋体;">当第二个事务选择其它事务正在更新的行时，会发生未确认的相关性问题。第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;<span>&nbsp;&nbsp;&nbsp; </span>e.g.</span></p>
<p class="MsoNormal" dir="ltr" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><span>&nbsp; </span>1.Mary</span><span style="font-size: 12pt; font-family: 宋体;">的原工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000, </span><span style="font-size: 12pt; font-family: 宋体;">财务人员将</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">Mary</span><span style="font-size: 12pt; font-family: 宋体;">的工资改为了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">8000(</span><span style="font-size: 12pt; font-family: 宋体;">但未提交事务) </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
</span></p>
<p class="MsoNormal" dir="ltr" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.Mary</span><span style="font-size: 12pt; font-family: 宋体;">读取自己的工资</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> ,</span><span style="font-size: 12pt; font-family: 宋体;">发现自己的工资变为了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">8000</span><span style="font-size: 12pt; font-family: 宋体;">，欢天喜地！</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><span>&nbsp; </span>3.</span><span style="font-size: 12pt; font-family: 宋体;">而财务发现操作有误，回滚了事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">,Mary</span><span style="font-size: 12pt; font-family: 宋体;">的工资又变为了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000 </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 宋体;">像这样</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">,Mary</span><span style="font-size: 12pt; font-family: 宋体;">记取的工资数</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">8000</span><span style="font-size: 12pt; font-family: 宋体;">是一个脏数据。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp;&nbsp; 解决办法：如果在第一个事务提交前，任何其他事务不可读取其修改过的值，则可&nbsp; 以避免该问题。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<h2 style="margin: 0cm 0cm auto;"><font face="宋体">三<span lang="EN-US">.</span>不一致的分析（非重复读）<span style="font-size: 8pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></font></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 8pt; font-family: 宋体;"> </span><span style="font-size: 12pt; font-family: 宋体;">
当第二个事务多次访问同一行而且每次读取不同的数据时，会发生不一致的分析问题。不一致的分析与未确认的相关性类似，因为其它事务也是正在更改第二个事务
正在读取的数据。然而，在不一致的分析中，第二个事务读取的数据是由已进行了更改的事务提交的。而且，不一致的分析涉及多次（两次或更多）读取同一行，而
且每次信息都由其它事务更改；因而该行被非重复读取。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 宋体;">在一个事务中前后两次读取的结果并不致，导致了不可重复读。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp; e.g.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><span>&nbsp; </span></span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1.</span><span style="font-size: 12pt; font-family: 宋体;">在事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1</span><span style="font-size: 12pt; font-family: 宋体;">中，</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">Mary </span><span style="font-size: 12pt; font-family: 宋体;">读取了自己的工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000,</span><span style="font-size: 12pt; font-family: 宋体;">操作并没有完成</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><span>&nbsp; </span></span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2.</span><span style="font-size: 12pt; font-family: 宋体;">在事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2</span><span style="font-size: 12pt; font-family: 宋体;">中，这时财务人员修改了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">Mary</span><span style="font-size: 12pt; font-family: 宋体;">的工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2000,</span><span style="font-size: 12pt; font-family: 宋体;">并提交了事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><span>&nbsp; </span></span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">3.</span><span style="font-size: 12pt; font-family: 宋体;">在事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1</span><span style="font-size: 12pt; font-family: 宋体;">中，</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">Mary </span><span style="font-size: 12pt; font-family: 宋体;">再次读取自己的工资时，工资变为了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2000 </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt 10.5pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">解决办法：如果只有在修改事务完全提交之后才可以读取数据，则可以避免该问题。</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 8pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span></p>
<h2 style="margin: 0cm 0cm auto;"><font><font face="宋体"><span lang="EN-US">四.幻想读</span></font></font></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 8pt; font-family: 宋体;">&nbsp; </span><span style="font-size: 12pt; font-family: 宋体;">当
对某行执行插入或删除操作，而该行属于某个事务正在读取的行的范围时，会发生幻像读问题。事务第一次读的行范围显示出其中一行已不复存在于第二次读或后续
读中，因为该行已被其它事务删除。同样，由于其它事务的插入操作，事务的第二次或后续读显示有一行已不存在于原始读中。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">&nbsp;</span><span style="font-size: 12pt; font-family: 宋体;">  </span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">e.g.</span><span style="font-size: 12pt;" lang="EN-US"><font face="Calibri"> </font></span><span style="font-size: 12pt; font-family: 宋体;">目前工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000</span><span style="font-size: 12pt; font-family: 宋体;">的员工有</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">10</span><span style="font-size: 12pt; font-family: 宋体;">人。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"> <o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp; 1.事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1,</span><span style="font-size: 12pt; font-family: 宋体;">读取所有工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000</span><span style="font-size: 12pt; font-family: 宋体;">的员工。</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';"> <span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp; 2.这时事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">2</span><span style="font-size: 12pt; font-family: 宋体;">向</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">employee</span><span style="font-size: 12pt; font-family: 宋体;">表插入了一条员工记录，工资也为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000 <o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;">&nbsp;&nbsp; 3.事务</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1</span><span style="font-size: 12pt; font-family: 宋体;">再次读取所有工资为</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">1000</span><span style="font-size: 12pt; font-family: 宋体;">的员工</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';"> </span><span style="font-size: 12pt; font-family: 宋体;">共读取到了</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US">11</span><span style="font-size: 12pt; font-family: 宋体;">条记录，</span><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt; text-indent: 24pt; text-align: left;" align="left"><span style="font-size: 12pt; font-family: 'Arial','sans-serif';" lang="EN-US"><o:p>&nbsp;</o:p></span></p>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span style="font-size: 12pt; font-family: 宋体;">解决办法：如果在操作事务完成数据处理之前，任何其他事务都不可以添加新数据，则可避免该问题<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp; 原文出处：http://blog.csdn.net/d8111/archive/2008/06/29/2595635.aspx<br />
</span>
<img src ="http://www.blogjava.net/sky2227/aggbug/271281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sky2227/" target="_blank">sky2227</a> 2009-05-18 11:31 <a href="http://www.blogjava.net/sky2227/archive/2009/05/18/271281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>