版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33223299/article/details/86010997
今天在做项目的时候,将备份back表中的数据更新到正式表中的时候,报了单行子查询返回多行的错误,后来仔细查看了备份表的子查询发现确实有多个TCX_WXQJXX_ID 的记录,所以ROWNUM<2 强制取了第一条,因为本来就是单条更新。
UPDATE TCX_WXQJXX wx SET(TCX_SBLXZD_ID,WXQY,WXFW,DDID,XLID,XBPD,SSZD,XLZD,ZYSQZ,DELFLAG,WXLX,ZSID,GDLX,CREATEDATE,
MODIFYDATE,CREATEUSER,MODIFYUSER)=(
SELECT wxb.TCX_SBLXZD_ID,wxb.WXQY,wxb.WXFW,wxb.DDID,wxb.XLID,wxb.XBPD,wxb.SSZD,wxb.XLZD,wxb.ZYSQZ,
wxb.DELFLAG,wxb.WXLX,wxb.ZSID,
wxb.GDLX,wxb.CREATEDATE,SYSDATE,wxb.CREATEUSER,#{modifyuser} FROM TCX_WXQJXX_BACK WHERE wx.TCX_WXQJXX_ID=wxb.TCX_WXQJXX_ID AND ROWNUM<2 )
WHERE EXISTS (SELECT 1 FROM TCX_WXQJXX_BACK wxb WHERE wx.TCX_WXQJXX_ID=wxb.TCX_WXQJXX_ID AND wxb.TCX_WXQJXX_BACK_ID=#{tcxWxqjxxBackId})