如何通过pgsql工具将变量传递到SQL中
select * from table_name where col_name = 变量;
有两种方式可以传递变量
1.1 \ set 元命令传递变量
\set 元子命令可以设置变量,格式如下,name 表示变量名称,value 表示变量值,如果不填写value,则变量为空
\set name
mytest=# \set v_id 2
mytest=# select * from pg_copy where id =:v_id;
id | name
----+------
2 | b
(1 row)
使用场景:一般在pgbench进行压力测试时使用\set 元命令为变量赋值
1.2 psql的-v 参数传递变量
创建select_1.sql查询脚本
[root@dongjj-2004 pgsql]# touch select_1.sql
[root@dongjj-2004 pgsql]# chown postgres:postgres /file/pgsql/select_1.sql
[root@dongjj-2004 pgsql]# vi select_1.sql
[root@dongjj-2004 pgsql]# cat select_1.sql
select * from pg_copy where id =:v_id;
[root@dongjj-2004 pgsql]#
执行sql查询脚本文件
psql -v v_id=1 mytest -f /file/pgsql/select_1.sql
[post