博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL使用insert语句时查询最大值作为ID插入!
阅读量:3960 次
发布时间:2019-05-24

本文共 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/

你可能感兴趣的文章