mysql查询后修改数据库操作的“正确打开方式”
业务:删除传感器表t_eom_sensor 时从报警记录表t_eom_devicewarnrecord中也删除产生的记录。
oracle数据库执行没问题:
mysql数据库执行情况:报错: You can't specify target table ‘f_student' for update in FROM clause
意思很显而易见了,说不能对进行查询操作的表进行delete操作,也就说我们的where条件中进行了子查询,并且子查询也是针对需要进行DML操作的表的,mysql不支持这种查询修改的方式。
上面的sql相比于之前的sql只是在取id的时候绕了一下,通过一个子查询的方式获取到id,而不是直接进行获取。