+ -
当前位置:首页 → 问答吧 → 请大家帮我看看这个问题,太奇怪了。通过一张表更新另一张表某一字段的问题。

请大家帮我看看这个问题,太奇怪了。通过一张表更新另一张表某一字段的问题。

时间:2011-12-13

来源:互联网

update a set a.student_syszddm=b.dwszddm from stuinfos_base a,Confer_dwszddm b where a.student_syszdmc =b.dwszd and a.student_year=' '

这是一条非常普通的SQL语句,不过我现在遇到一个非常稀奇的问题!
我需要使用 Confer_dwszddm(这张表有3000多条记录)里面的 dwszddm 字段的内容 去填充 stuinfos_base(这张表有11万条记录)里面的 student_syszddm 字段。前提条件是 两张表的 a.student_syszdmc =b.dwszd 字段要相同。
然后我再通过a.student_year=' '来确定年份。
我在匹配 2005届、2006届、2007届 ·····到2011届数据,更新执行都非常迅速。但是 2012届的数据,就出现问题了。老是提示我 超时。
我就纳闷了,都是一张表里面的数据,为什么,前几年的数据,我执行更新就没问题。偏偏这个最新的数据就出现这种 超时,没法匹配的情况。


请大家帮我分析一下。 

作者: believebowps   发布时间: 2011-12-13




贴出来语句看一下,是不是你的2011年的数据比之前年的数据要大?

作者: abclm   发布时间: 2011-12-13

有不规则的数据?

作者: fredrickhu   发布时间: 2011-12-13

stuinfos_base.student_year是什么格式存储的?

作者: fuxiyang   发布时间: 2011-12-13

帮楼主顶,请高手帮忙。

作者: t3121522520   发布时间: 2011-12-13

楼主不来互动啊

作者: fuxiyang   发布时间: 2011-12-13

单独更新一下2012的数据试试看什么效果

作者: pengxuan   发布时间: 2011-12-13

但是 2012届的数据,就出现问题了。

-->

先查询一下2012届的数据,看看什么情况?

作者: dawugui   发布时间: 2011-12-13

SQL code

select a.*,b.* from stuinfos_base a,Confer_dwszddm b where a.student_syszdmc =b.dwszd and a.student_year=' '
单独执行查询看看慢不慢,是什么结果


作者: gogodiy   发布时间: 2011-12-13

同志们,我要崩溃了。
我用这条语句 把2012届的数据独立出来了。
select * into 单独数据2012届 from stuinfos_base where student_year='2012届'
然后我再使用
update a set a.student_syszddm=b.dwszddm from stuinfos_base a,Confer_dwszddm b where a.student_syszdmc =b.dwszd and a.student_year='2012届'

结果怎样你们猜??
瞬间完毕更新!!
我无语了。

作者: believebowps   发布时间: 2011-12-13

同志们,我要崩溃了。
我用这条语句 把2012届的数据独立出来了。
select * into 单独数据2012届 from stuinfos_base where student_year='2012届'
然后我再使用
update a set a.student_syszddm=b.dwszddm from 单独数据2012届 a,Confer_dwszddm b where a.student_syszdmc =b.dwszd and a.student_year='2012届'

结果怎样你们猜??
瞬间完毕更新!!
我无语了。

作者: believebowps   发布时间: 2011-12-13

检查stuinfos_base表上是否有update触发器?

作者: ap0405140   发布时间: 2011-12-13

是不是有其他操作,锁住了 stuinfos_base 表,而锁住的那条记录,就是 2012 届的?

作者: qianjin036a   发布时间: 2011-12-13