mysql的You can't specify target table 'record' for update in FROM clause问题

qq_21588773 2015-10-11 08:14:05
用的是mysql5.6+myeclipse10,在做一个tomcat的网页项目,
有一个record的table现在要实现插入一个记录,并且将recordid实现自增(取最大值自增),
?是record表里的其他值
语句是
this.sql="insert into record ((select ifnull(max(recordid),0)+1 from record),?,?,?,?,?)";
报错是java.sql.SQLException: You can't specify target table 'record' for update in FROM clause

SQL语句学的不好,已经不知道要如何写了,求救!!!
...全文
237 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
番茄鲨鱼面 2015-10-12
  • 打赏
  • 举报
回复
你不能利用select出的值来update同一个表。但是可以将子查询再select一次,这样mysql就检测不出是同一个表了。
这是我建的一个表:
user(
id,username)
更新的sql:
INSERT into user (id,username) values(
(SELECT t.id from (
select ifnull(max(id),0)+1 id from user
) t)
,4)
ps:我这里不知道怎么搞的,csdn一直加载不出来,不能上传图片和不能格式化代码,将就着看吧。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧