postgresql - PostgreSQL - 声明变量并多次更改其值
问题描述
来自 MySQL 和 T-SQL 的我,无法从文档(0 个真实示例)和 stackoverflow(0 个真实示例)中弄清楚如何处理 PostgreSQL 中最基本的变量管理,这是一场灾难。
下面的代码会导致错误ERROR: duplicate declaration...
declare invalidThirdUser boolean := 'false';
invalidThirdUser = (select 'true' where NEW.sender_id not in(
select user1_id from thread where id = NEW.thread_id
union all
select user2_id from thread where id = NEW.thread_id
));
我试过了
invalidThirdUser = (select...
invalidThirdUser := (select...
set invalidThirdUser = (select...
select invalidThirdUser = (select...
在 postgres 中为变量分配新值有多痛苦?谢谢。
解决方案
这是一个很简单的例子,如何处理PostgreSQL中最基本的变量管理:
do $$
declare
invalidThirdUser boolean DEFAULT FALSE;
begin
RAISE NOTICE '%', invalidThirdUser; -- check variable's current value
invalidThirdUser := TRUE; -- set new value
RAISE NOTICE '%', invalidThirdUser; -- check variable's current value
SELECT FALSE INTO invalidThirdUser; -- set new value again, but using SELECT..INTO way
RAISE NOTICE '%', invalidThirdUser; -- check variable's current value
end; $$ language plpgsql
推荐阅读
- json - Perl:每次在数组中获取一个值时从 URL 解析 Json
- sql-server - 小于字符作为 T-SQL 中的搜索条件而不是运算符语法
- ansible - ansible firewalld 规则中的 jinja2 模板
- java - JVM 消耗的本机内存与 Java 进程的总内存使用量
- c++ - С++ wxWidgets:代码架构、设计原则和模式
- java - 在 sftp 中写入文件而不传输文件
- r - 使用 weibreg() 函数在小鼠包中进行池化
- php - 获取设备名称 php
- javascript - 渲染函数内的模板无法解析 - LitElement
- python - 如何修复“torch.nn.Linear”的权重?