我使用的是 pgAdmin 版本 1.10.5,并且我已经检查了属性和菜单选项,但找不到有关该主题的任何内容。
例如,我只想生成一个脚本,其中包含我为架构创建的函数。如果我右键单击数据库节点并选择备份,它可以选择为架构创建脚本,但它会创建所有对象。我只想要功能。
我使用的是 1.16.1 版,但找不到要调整的“max(imum) rows”参数。任何帮助,将不胜感激。
根据 PGSQL 9.3 文档:
因为这并不总是需要,而且有很多关于如何索引的选择,外键约束的声明不会自动在引用列上创建索引。
然而,在我创建了这样一个约束之后,当我运行时,\d <table>我看到索引确实被创建了:
Indexes:
"table_primary_key" PRIMARY KEY, btree (id)
"fki_table_product_foreign_key" btree (product)
什么可以解释为什么会创建这个?我是否仍然需要在我的产品列上创建另一个索引来提高对它的查询性能?
在 pgAdminIII 中,我创建了一个函数,该函数使用 RETURN TABLE 在名为 identifier 的单列中返回多行:
CREATE OR REPLACE FUNCTION test(
IN parm1 date,
IN parm2 interval)
RETURNS TABLE(identifier INT)
AS
$BODY$
BEGIN
RETURN QUERY
SELECT 1;
END;
$BODY$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
创建函数后,pgAdminIII 显示该函数具有以下定义:
CREATE OR REPLACE FUNCTION test(IN parm1 date, IN parm2 interval)
RETURNS SETOF integer AS
$BODY$
BEGIN
RETURN QUERY
SELECT 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
Run Code Online (Sandbox Code Playgroud)
执行函数时,它遵循RETURNS TABLE. 但是,在编辑该函数时,它将拾取RETURNS SETOF. 这提供了与我指定的函数不同的功能(例如,返回的列的名称不再存在)。
那么,如何强制 pgAdminIII 保留返回的列名identifier?我并不特别关心我是否将其定义为 aTABLE或SETOF …
使用pgAdmin,当值很长时,如何查看行的整个字符串值?
例如,该值可能是包含数百或数千个字符的逗号分隔值 (CSV)内容。此外,该值可能包含换行符。
在 pgAdmin 的 SQL 工具中进行查询时,结果窗格只显示几十个字符,然后禁止显示更多字符。有没有办法查看所有文本值?
有什么方法可以将查询结果导出到文本文件或文本窗口?
我有一系列遵循一般模式的更新语句:一次更新聚合来自另一个表(或有时是多个表)的值,下一次更新根据聚合值生成排名。对于总共 46 个更新语句,此过程重复 23 次。每个更新对独立运行需要 30-40 秒,但是当我通过 PgAdmin 将它们作为单个事务一起运行时,它需要一个多小时,而不是我期望的基于单个查询时间的约 15 分钟。(上次尝试时,我最终停止执行并单独运行它们。)
如果我通过 psql 在文件中运行相同的更新集,则该过程将在预期的 15 分钟时间内完成。
查询计划器是否有一些怪癖会根据在单个事务中运行的大量更新语句来更改执行计划?鉴于 psql 和 PgAdmin 之间的不同行为,我认为这与查询打包执行的方式有关,但我不太熟悉,无法了解其中的区别。
有没有办法编写我的代码,以便在通过 PgAdmin 作为单个事务运行时提高性能?
我在 Ubuntu 16.04 上使用 PostgreSQL 9.5。
以下是代码中的两个示例对联:
-- bike_driver_aggressive
UPDATE generated.crash_aggregates
SET bike_driver_aggressive = (
SELECT COUNT(*)
FROM crashes_bike2 c
WHERE c.int_id = crash_aggregates.int_id
AND c.aggressive_driverfault
);
WITH ranks AS (
SELECT int_id,
rank() OVER (ORDER BY bike_driver_aggressive DESC) AS rank
FROM crash_aggregates
)
UPDATE generated.crash_aggregates
SET bike_driver_aggressive_rank = ranks.rank
FROM ranks
WHERE crash_aggregates.int_id = ranks.int_id; …Run Code Online (Sandbox Code Playgroud) A 有一个 TEXT 列,其中的值包含换行符。当我查询 pgAdmin 中的列时,我只看到每个值的第一行。我可以让 pgAdmin 在一个单元格中显示多行吗?
我在我的 Firefox 浏览器(Mac)上使用 PGAdmin4。我正在寻找自动完成功能,但无法使其工作。
文档说自动完成的快捷方式是“ Ctrl+Space”,但它不起作用。
有谁知道如何让它发挥作用吗?
您好,我目前正在使用 postgresql 并删除一些表以进行测试,我想备份架构。谁能告诉我该怎么做?
pgadmin ×10
postgresql ×8
pgadmin-4 ×3
erd ×1
foreign-key ×1
functions ×1
index ×1
parameter ×1