13

我无法理解对 pgScript 的需求,它可以使用 pgAdmin 工具执行。什么时候应该使用?plpgSQL 不能做什么?Microsoft SQL Server 中的等效项是什么?

4

3 回答 3

10

pgScript 是一种客户端脚本语言,而 pl/PgSQL 在服务器上运行。这意味着它们有完全不同的用例。例如,PgScript 可以管理事务状态,而 pl/PgSQL 不能,但是 pl/Pgsql 可以用来扩展 SQL 的语言,而 pgScript 不能。

此外,这意味着两者将处理许多其他完全不同的事情,从查询计划到动态 SQL,而 pgScript 需要查询之间的往返,而 pl/Pgsql 不需要。

于 2013-05-16T07:35:36.450 回答
2

pgScript 的一种用途是定义变量并稍后在 SQL 中使用它们。

例如,您可以执行以下操作:

declare @mytbl, @maxid; 
set @mytbl = 'sometable'; 
set @maxid = 2500; 
set @res = select count(*) from @mytbl where id <= @maxid;
print @res;

这种方法是在脚本顶部只包含您想要更改的任何变量,而不是那些深埋在复杂 SQL 查询中的变量。

当然,pgScript 是仅在 PgAdmin III 客户端中可用的功能,例如他的评论中提到的@{Craig Ringer}。

于 2016-11-03T19:34:16.340 回答
-1

我使用了 Toad Data Modeler 的 DDL 脚本生成器。

我在 PgAdmin-III 中使用普通查询执行运行脚本,但它一直给我错误:
"ERROR: relationship "user" already exists SQL state: 42P07"

我在PgAdmin-III中运行了 Execute pgScript ,它运行良好。

于 2013-11-20T03:18:27.190 回答