本文共 614 字,大约阅读时间需要 2 分钟。
在MySQL中我们经常使用当前表中ID最大值+1作为下一个插入元素的主键ID进行
insert
执行、当然是在不设置主键自增长的情况下、那么在操作同一张表的情况下insert....(select max(id) from table)
等语句的时候我们就需要特别的注意。
需求:查询出
user
表中主键ID
最大值+1做为添加下一调数据的主键ID
# table----> user# 完整语法insert into from user(id,name,age,email) values(id,name,age,email); # 实际填充数据insert into from user(id,name,age,email) values((select max(id) from user),'zhangsan',22,'123@qq.com');
You can't specify target table 'user' for update in FROM clause
意思是不能再同一个表中查出数据又修改数据,所以要给表取个别名,避免错误。
# 实际填充数据insert into from user(id,name,age,email) values((select max(id)+1 from user us),'zhangsan',22,'123@qq.com');
添加别名即可!
转载地址:http://cdqzi.baihongyu.com/