psql自定义变量
准备Demo表
- snippet.sql
postgres=# CREATE TABLE tab1 (a INT, b CHAR(16)); postgres=# INSERT INTO tab1 VALUES(93, 'xyz'); postgres=# SELECT * FROM tab1; a | b ----+------------------ 93 | xyz (1 ROW)
一、\set 方法
- snippet.sql
postgres=# \SET my_var tab1 postgres=# \echo :my_var tab1 postgres=# SELECT * FROM :my_var; a | b ----+------------------ 93 | xyz (1 ROW)
注:
- 变量值可以使用引号括起来。
二、\gset 方法
该命令在PG12版本新增。
例如:
- snippet.sql
postgres=# SELECT b AS my_var FROM tab1 \gset postgres=# \echo :my_var xyz
以下示例,将时间戳赋值给变量my_var:
- snippet.sql
postgres=# SELECT CAST(EXTRACT(epoch FROM now()) AS BIGINT) AS my_var \gset postgres=# \echo :my_var 1609133432 postgres=# \echo VIEW:my_var view1609133432
注:
- \gset方法可以将查询结果赋值给变量
打赏作者以资鼓励: