我正在使用MySQL。我有一个查询,该查询会在我的表iwmsCaseDetails中拉回caseAssignedTo的值为空白。看起来像这样:
SELECT
icd.caseAssignedTo,
hed.ADUserid
FROM
iwmsCaseDetails icd
INNER JOIN hremployeedetails hed on (hed.EmployeeNumber = icd.OwnerEmployeeNumber)
WHERE
icd.caseAssignedTo is null or trim(icd.caseAssignedTo) = '';
上面的代码将icd.caseAssignedTo列中的行显示为空,而hed.ADUserid列中的行显示了我想要icd.caseAssignedTo的值,从而拉回了相关记录。
但是,下面的更新代码不起作用:
UPDATE
iwmsCaseDetails icd
INNER JOIN hremployeedetails hed
on (hed.EmployeeNumber = icd.OwnerEmployeeNumber)
SET
icd.caseAssignedTo = hed.ADUserid
WHERE
icd.caseAssignedTo is null or trim(icd.caseAssignedTo) = '';
相反,它返回错误消息:
“#1136-列数与第1行的值数不符”
我已经检查并重新检查了此SQL,但看不到为什么它不起作用。谁能看到这是怎么回事?
答案 0 :(得分:0)
发生问题是因为iwmsCaseDetails上有一个触发器,该触发器试图将数据的副本存储到历史记录表中-但历史记录表未定义触发器所引用的所有必需列。在我添加了缺失的行之后,原始的sql正常工作了。