尝试从MySql中的相关表更新列

时间:2019-09-11 07:11:54

标签: mysql sql

我正在使用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,但看不到为什么它不起作用。谁能看到这是怎么回事?

1 个答案:

答案 0 :(得分:0)

发生问题是因为iwmsCaseDetails上有一个触发器,该触发器试图将数据的副本存储到历史记录表中-但历史记录表未定义触发器所引用的所有必需列。在我添加了缺失的行之后,原始的sql正常工作了。