MySQL 更新两张表字段时出现“无效”错误,如何解决?

mysql 更新两张表字段时出现“无效”错误,如何解决?

mysql 中通过子查询更新两张表之间的字段时,可能会遇到“无效”的错误。

问题描述:

您希望使用 sql 语句将表 a 中的 chapterid 字段更新为表 b 中的 id 字段,其中 courseid 相同。但是,以下 sql 语句不起作用:

update cmf_course_lesson a,
 cmf_course_chapter b
set a.chapterid = b.id
where
    a.courseid = b.courseid;

解决方案:

要解决此问题,需要在 where 条件中添加对表 a 的主键(在本例中为 a.id)。mysql 运行在安全更新模式下,该模式要求非主键条件下执行更新或删除命令时必须包含主键条件。

修改后的 sql 语句如下:

UPDATE cmf_course_lesson a,
 cmf_course_chapter b
SET a.chapterid = b.id
WHERE
    a.courseid = b.courseid AND A.id > 0;

以上就是MySQL 更新两张表字段时出现“无效”错误,如何解决?的详细内容,更多请关注其它相关文章!