MySQL错误1443解决方法

时间:2015-10-14 18:45:55

标签: mysql sql

我相信我的问题可以提到another question几乎相同的标题,但遗憾的是答案对我来说不够清楚,这个问题也是6岁,也许已经对MySQL做了一些改动。

我想从表中删除行甚至没有更新/插入/删除视图表中的行,据我所知,mysql不幸地阻止我们对引用视图表的表进行更改。 我需要引用我的选项2和我的问题:

我如何“将列表转储到临时表并将其用于子查询。”或是否有解决方法使此代码正常工作

我正在使用MySQL版本5.6.12和 我正在处理的代码:

DELETE FROM student
   WHERE (SUBSTR(student.stud_no,1,4) = 1234)
       AND NOT EXISTS
          (SELECT vr.stud_no FROM viewroom vr WHERE
           vr.stud_no = student.stud_no)
       AND NOT EXISTS
          (SELECT vlnr.stud_no,vlnr.status FROM viewlateststudentnr 
           vlnr WHERE (student.stud_no = vlnr.stud_no) AND (vlnr.status = 'confirmed') )

错误:

  

1443 - 表'vr'的定义阻止了表'student'上的操作DELETE。

1 个答案:

答案 0 :(得分:2)

显然,您的观看次数必须包含您要删除的表格。这表明外连接:

DELETE s
   FROM student s LEFT JOIN
        viewroom vr
        ON vr.stud_no = s.stud_no LEFT JOIN
        viewlateststudentnr vlnr
        ON s.stud_no = vlnr.stud_no AND vlnr.status = 'confirmed'
   WHERE SUBSTR(s.stud_no, 1, 4) = 1234 AND
         vr.stud_no IS NULL AND vlnr.stud_no IS NULL;