在mysql REPL中,可以执行以下操作:
set @x = 1;
set @d = (select now());
select @x, @d;
+------+---------------------+
| @x | @d |
+------+---------------------+
| 1 | 2018-11-22 16:38:11 |
+------+---------------------+
现在,我尝试在postgresql REPL中执行相同的操作。我找到了:
set var.x = 1;
select current_setting('var.x');
它有效,但是我找不到如何将查询结果存储到变量中的方法。我已经尝试过了:
set var.d = (select now());
ERROR: syntax error at or near "("
LINE 1: set var.d = (select now());
^
select now() into var.d;
ERROR: schema "var" does not exist
select now() into d;
-- creates new table, which is wrong
d := select now();
ERROR: syntax error at or near "d"
LINE 1: d := select now();
能帮您找到解决方法吗?我正在使用psql (PostgreSQL) 10.5
。
答案 0 :(得分:1)
我不确定这是否是您要寻找的东西,但是有一种方法。 您可以生成结果并将其存储到如下所示的变量中:
\set x 1
select now() \gset
select :x, :'now';
结果将是:
?column? | ?column?
----------+-------------------------------
1 | 2018-11-22 19:50:38.391587+02
(1 row)