"SELECT INTO" 是什么意思?

4

我正在阅读一段看起来像这样的 SQL 代码:

SELECT INTO _user tag FROM login.user WHERE id = util.uuid_to_int(_user_id)::oid;

这个到底是做什么的?使用SELECT INTO的通常方式需要在SELECT标记之后指定要选择的列,例如:
SELECT * INTO _my_new_table WHERE ...;

数据库是postgresql。

1个回答

2

这行代码必须出现在PL/pgSQL函数内部。在该上下文中,从列tag的值赋给变量_user

根据文档

提示:请注意,此处SELECT INTO的解释与PostgreSQL常规的SELECT INTO命令完全不同,后者的INTO目标是新创建的表。

INTO子句几乎可以出现在SQL命令的任何位置。通常,在SELECT命令中的select_expressions列表之前或之后编写它,或在其他命令类型的命令末尾编写它。建议您遵循此约定,以防PL/pgSQL解析器在将来的版本中变得更加严格。


啊,没错,我也是这么想的。 所以变量_user将是第一行的值? - Hannesh
正确。文档中该部分的标题为“执行返回单行结果的查询”,因此这是其预期目的。在您的情况下,显然是关于用户凭据,那么从查询中返回的就应该是预期结果。 - Patrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接