暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【翻译PG】42.4. 表达式

seagull 2024-11-24
75

42.4. 表达式

语句中用到的所有表达式会被服务器的主SQL执行器处理。例如,当你写一个这样的语句时

IF expression THEN ...

将通过给主 SQL 引擎发送一个查询

SELECT expression

来计算该表达式。如第 42.11.1 节中所详细讨论的,在构造该SELECT命令时,变量名的每一次出现会被参数所替换。这允许SELECT的查询计划仅被准备一次并且被重用于之后的对于该变量不同值的计算。因此,在一个表达式第一次被使用时实际发生的本质上是一个PREPARE命令。例如,如果我们已经声明了两个整数变量xy,并且我们写了

IF x < y THEN ...

在现象之后发生的等效于

PREPARE statement_name(integer, integer) AS SELECT $1 < $2;

并且然后为每一次IF语句的执行,这个预备语句都会被EXECUTE,执行时使用变量的当前值作为参数值。通常这些细节对于一个用户并不重要,但是在尝试诊断一个问题时了解它们很有用。更多信息可见第 42.11.2 节


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论