为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:达梦8
【操作系统】:win
【CPU】:
【问题描述】*: UPDATE zszx.EM_ENTPRISE_MASTER mast
INNER JOIN (
SELECT ENTPRISE_ID, NAME
FROM zszx.EM_ENTPRISE_TAX
WHERE ENTPRISE_ID IN ${entpriseId}
AND BOOK_DATE = #{bookDate}
AND ENABLED = 1 ) tax ON tax.ENTPRISE_ID = mast.ID
SET mast.NAME = tax.NAME
数据库版本是多少,可以试试用merge into先绕过?
MERGE INTO zszx.EM_ENTPRISE_MASTER mast
using (
SELECT ENTPRISE_ID, NAME
FROM zszx.EM_ENTPRISE_TAX
WHERE ENTPRISE_ID IN ${entpriseId}
AND BOOK_DATE = #{bookDate}
AND ENABLED = 1 )tax
ON tax.ENTPRISE_ID = mast.ID
WHEN MATCHED THEN
UPDATE SET mast.NAME = tax.NAME
检查下是不是有中文空格之类的导致的报错,本地测试了下语法是可以执行的