You can't specify target table 'student' for update in FROM clause
时间: 2024-06-17 17:04:58 浏览: 248
Specify块-verilog数据类型及应用
这个错误通常是在MySQL中进行多表更新时出现的。出现这个错误的原因是因为MySQL不允许在同一查询中更新和选择同一个表。解决此问题的一种方法是使用子查询或临时表来避免同时更新和选择同一个表。
以下是使用子查询的示例:
UPDATE student
SET name = 'John Doe'
WHERE id IN (SELECT id FROM (SELECT id FROM student) AS temp);
以下是使用临时表的示例:
CREATE TEMPORARY TABLE temp_student
SELECT id FROM student;
UPDATE student
SET name = 'John Doe'
WHERE id IN (SELECT id FROM temp_student);
DROP TABLE temp_student;
阅读全文