标签:常见 class -- 问题 常见错误 rac sql语句 you table
1)DELETE语句不能直接使用表的别名
执行insert,update,delete语句时,我们为了方便常给表加上别名,这在Oracle下完全没有问题,但是MySQL的delete语句后面不可以直接使用表的别名,会提示语法错误,如下面这条语句就是错误的,
DELETE FROM `user` a WHERE a.USER_NAME = ‘lisi‘; -- 错误的
正确的写法,DELETE a FROM `user` a WHERE a.USER_NAME = ‘lisi‘,在delete和from之间加表的别名
2)删除一张表的某些记录时,where条件是通过查询这张表获得的导致报错You can‘t specify target table ‘s‘ for update in FROM clause
执行SQL语句时出现这个错误。原因是在更新这个表和数据时又查询了它,而查询的数据又做了更新的条件。以前ORACLE上面没有这个错误。
解决方法1.新建一张临时表,删除之后,把这张临时表删除。2.第二种方法,在where条件外再包一层查询就可以避免这种错误如
DELETE FROM tempA WHERE tid NOT IN ( SELECT t.tid FROM ( SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age ) t )
标签:常见 class -- 问题 常见错误 rac sql语句 you table
原文地址:https://www.cnblogs.com/zplogo/p/9839259.html