手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

update sql

首页 > DataBase >

更新数据库的时候,提示: You can't specify target table 'channels' for update in FROM clause
出错的SQL是什么呢?
出错的是SQL是:
update channels set parentid = 0 where parentid in (select b.id from channels b where b.parentid = 0) ;
从理论上来看好象没什么错,但就是出现上面的错误(You can't specify target table 'channels' for update in FROM clause),说是不能在原表操作。于是改正它。。
改成:
update channels set parentid = 0 where parentid IN ( select id from (SELECT id from channels where parentid = 0) as tmp )
看上去是不是很恶心?但确实是通过临时表来解决了这个问题。。。
好吧,我又恶心了




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"易栈网-膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: update, 子查询

« 上一篇 | 下一篇 »

只显示10条记录相关文章

IE8来带的困惑:很遗憾,我没有升级到IE8 (浏览: 22203, 评论: 0)
FormValidator又升级了 (浏览: 20207, 评论: 0)
Wordpress自动升级和plugin插件更新的问题 (浏览: 19700, 评论: 0)
mysql子查询删除 (浏览: 18909, 评论: 1)

发表评论

评论内容 (必填):