每一年都奔走在自己热爱里

没有人是一座孤岛,总有谁爱着你

MySQL使用Insert语句时查询该表排序最大值插入

1. 问题描述

1.1 在MySQL中我们经常使用当前表中排序sort最大值+1作为下一个插入元素执行insert语句时报错

INSERT INTO basic_semester_info (semester, sort) VALUES (semester, sort)
INSERT INTO basic_semester_info (semester, sort) VALUES (1, (select (max(sort) + 1) as sort from basic_semester_info))

 

2. 问题原因

You can't specify target table 'basic_semester_info' for update in FROM clause     ------>>  翻译过就是  不能在FROM子句中为更新指定目标表“基本信息”

大概意思就是:不能再同一个表中查出数据又修改数据,所以要给表取个别名,避免错误。

3. 解决方法

在查询最大排序的sql表加上别名即可

INSERT INTO basic_semester_info (semester, sort) VALUES (1, (select (max(a.sort) + 1) as sort from basic_semester_info a))

posted @ 2021-09-09 18:28  helloliyh  阅读(547)  评论(0)    收藏  举报