gpt4 book ai didi

sql - 如何在 psql 中使用脚本变量?

转载 作者:行者123 更新时间:2023-11-29 17:33:56 25 4
gpt4 key购买 nike

在 MS SQL Server 中,我创建脚本来使用可自定义变量:

DECLARE @somevariable int  
SELECT @somevariable = -1

INSERT INTO foo VALUES ( @somevariable )

然后,我将在运行时更改 @somevariable 的值,具体取决于我在特定情况下想要的值。由于它位于脚本的顶部,因此很容易看到和记住。

如何使用 PostgreSQL 客户端 psql 执行相同操作?

最佳答案

Postgres变量是通过\set命令创建的,例如...

\set myvariable value

...然后可以替换,例如...

SELECT * FROM :myvariable.table1;

...或...

SELECT * FROM table1 WHERE :myvariable IS NULL;

编辑:从 psql 9.1 开始,变量可以在引号中展开,如下所示:

\set myvariable value 

SELECT * FROM table1 WHERE column1 = :'myvariable';

在旧版本的 psql 客户端中:

...如果您想使用变量作为条件字符串查询中的值,例如...

SELECT * FROM table1 WHERE column1 = ':myvariable';

...那么您需要在变量本身中包含引号,因为上面的方法不起作用。相反,定义你的变量......

\set myvariable 'value'

但是,如果您像我一样遇到想要从现有变量创建字符串的情况,我发现技巧就是这样......

\set quoted_myvariable '\'' :myvariable '\''

现在您拥有同一字符串的带引号和不带引号的变量!你可以做这样的事情......

INSERT INTO :myvariable.table1 SELECT * FROM table2 WHERE column1 = :quoted_myvariable;

关于sql - 如何在 psql 中使用脚本变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com