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 更新两张表字段时出现“无效”错误,如何解决?的详细内容,更多请关注其它相关文章!