帮忙,急!!!!sql执行错误 # 1093 .从数据库的响应:

zhsj0110 2007-04-13 04:45:32
update c_visitor set pv_num=pv_num+1
where id=(select max(id)
from c_visitor
where c_info_id =1
and curUrl='http://127.0.0.1:8081/hboys');
我想更新c_visitor,根据 c_info_id =1 and curUrl='http://127.0.0.1:8081/hboys' 的条件,可是报错
sql执行错误 # 1093 .从数据库的响应:
you can't specify target table 'c_visitor; for update in from clause

如果我单独执行,是可以的
但是我想合并到一起
不知道怎么办
请各位高手指点
...全文
457 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhsj0110 2007-04-13
  • 打赏
  • 举报
回复
这条语句是不是就锁表了
高手指点
用一条语句可以查询吗??????????
zhsj0110 2007-04-13
  • 打赏
  • 举报
回复
表结构是这样的
zhsj0110 2007-04-13
  • 打赏
  • 举报
回复
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| c_info_id | int(11) | NO | | | |
| user_id | int(11) | NO | | | |
| c_day_id | int(11) | NO | | | |
| Visit_Date | datetime | YES | | NULL | |
| Ip | varchar(64) | YES | | NULL | |
| Address | varchar(64) | YES | | NULL | |
| System | varchar(32) | YES | | NULL | |
| Browser | varchar(32) | YES | | NULL | |
| Screen | varchar(16) | YES | | NULL | |
| Referer | varchar(128) | YES | | NULL | |
| curURL | varchar(128) | YES | | NULL | |
| pv_num | int(11) | YES | | 1 | |
+------------+--------------+------+-----+---------+----------------+
yangxiao_jiang 2007-04-13
  • 打赏
  • 举报
回复
pv_num 这个字段是什么字段?
能把表结构给贴出来吗?
ChumpKlutz 2007-04-13
  • 打赏
  • 举报
回复
可能是这样的:
当在进行更新的时候,表就被锁定这时是不允许进读取操作的.而你在子查询与更新表使用的是同一个表,所以出了问题.

所以只能分开写了,max(id)存在一个变量里,然后再进行更新
wwwasdf5 2007-04-13
  • 打赏
  • 举报
回复


给大家介绍个技术群

大家一起学习,一起提高

33058239

56,673

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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