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语句学的不好,已经不知道要如何写了,求救!!!
...全文
122 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
番茄鲨鱼面 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一直加载不出来,不能上传图片和不能格式化代码,将就着看吧。
回复
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-11 08:14
社区公告
暂无公告