[Err] 1093 - You can't specify target table 'user' for update in FROM clause

2010-08-24  郭艳军 

一、目的:
去除重复的用户记录(指id不同,用户名相同的记录)
二、操作:
delete  from user where id in (select min(id) from user order by name );
三、错误提示:
[Err] 1093 - You can't specify target table 'user' for update in FROM clause
四、
1、原因http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#delete
目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。
2、通过网上的提示,试图找另外一种解决方案(此方案适应于将要删除的表的主键没有作为外键被引用):
 
3、第二条sql语句无法执行成功:由于id也是外键。这时试着用级联删除。
报错信息如下:
Cannot delete or update a parent row: a foreign key constraint fails (`wap_wly/access_log`, CONSTRAINT `FK_access_log` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
 
 
 
366°/3663 人阅读/0 条评论 发表评论

登录 后发表评论