Postgresql中的update语句对alias的支持没有select中支持的完善,有个不大不小的问题。虽然不严重,但不知道的话还是会引起很大的困惑。
首先看一下Postgresql对update的帮助:
- Command:UPDATE
- Description:updaterowsofatable
- Syntax:
- UPDATE[ONLY]table[[AS]alias]
- SET{column={expression|DEFAULT}|
- (column[,...])=({expression|DEFAULT}[,...])}[,...]
- [FROMfromlist]
- [WHEREcondition|WHERECURRENTOFcursor_name]
- [RETURNING*|output_expression[ASoutput_name][,...]]
- updatexuepeng.bbasbsetb.a=3wherea=2;
- ERROR:column"b"ofrelation"bb"doesnotexist
- LINE1:updatexuepeng.bbasbsetb.a=3wherea=2;
因此我们虽然使用了alias,但是在set的语句中还是不能使用这个别名的。有意思的是,在where的子语句中,却是能够正常使用alias。以下的语句是正确的:
- updatexuepeng.bbasbseta=3whereb.a=2;
原文地址:https://www.jb51.cc/postgresql/197326.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。