标签: pgadmin

反向for循环在Postgresql中不起作用

当我尝试在PostgreSQL中使用Reverse for循环时,似乎编译器无法识别单词'reverse'。它完全跳过了循环。

DO $$
BEGIN
RAISE NOTICE 'LOOP STARTING......' ;
FOR  I IN  REVERSE  1..10 LOOP
RAISE NOTICE 'INSIDE LOOP......' ;
RAISE NOTICE 'NUMBER IS  %', I;
END LOOP;
END $$ ;
Run Code Online (Sandbox Code Playgroud)

输出
-------------------
注意:循环启动...

但是当我省略反向一词时,编译器可以正常工作。知道为什么会这样。

我正在使用PgAdmin版本1.20.0

postgresql reverse for-loop pgadmin

1
推荐指数
1
解决办法
993
查看次数

如何使用参数/变量并一起解释

我的函数只有一个参数carAzimuth

CREATE OR REPLACE FUNCTION map.get_near_link(x numeric, y numeric, carAzimuth numeric)
Run Code Online (Sandbox Code Playgroud)

里面我有一些计算和这个查询

SELECT *
FROM map.vzla_seg S
WHERE
    S.azimuth > carAzimuth - 30  and   
    S.azimuth < carAzimuth + 30  or
    S.azimuth < carAzimuth - 330 or 
    S.azimuth > carAzimuth + 330;
Run Code Online (Sandbox Code Playgroud)

我想分析查询性能。所以我必须将变量替换为常量。并且工作正常,并向EXPLAIN PLAN我展示正在使用正确的索引。

EXPLAIN ANALYZE    
 SELECT *
 FROM map.vzla_seg S
 WHERE
    S.azimuth > 345 - 30  and   
    S.azimuth < 345 + 30  or
    S.azimuth < 345 - 330 or 
    S.azimuth > 345 + 330;
Run Code Online (Sandbox Code Playgroud)

但如果想测试不同的值,改变每个变量是很麻烦的。那么如果你尝试

EXPLAIN …
Run Code Online (Sandbox Code Playgroud)

sql postgresql performance sql-execution-plan pgadmin

1
推荐指数
1
解决办法
2410
查看次数

在postgres中创建一个触发器

我正在尝试通过pgadmin创建一个触发器,以便有一个计算列.

我需要这样做:c = a/b

我创建了一个函数UpdateC,它包含以下代码:

UPDATE table_name
SET c = a / b
WHERE id = @id
Run Code Online (Sandbox Code Playgroud)

我将@id声明为参数.

然后我想我会创建一个触发器并将它链接到该函数,但我发现我需要将它链接到触发器函数而不是函数.

现在我正在尝试使用与上面完全相同的SQL创建触发器函数,但是我收到了下一个错误:

"UPDATE"或其附近的语法错误

在定义选项卡下我必须选择一种语言,所以我选择了"plpgsql"(其他选项是"c"和"internal").

任何帮助将深表感谢!

sql database postgresql database-trigger pgadmin

1
推荐指数
1
解决办法
2126
查看次数

通过pgAdmin从*.sql文件恢复Postgres数据库架构?

我有几个*.sql转储文件,我想恢复到新创建的数据库'spatial_db'.我知道我可以通过命令行恢复它们:

psql -U username -h 127.0.0.1 -d spatial_db -f path/to/dump/file.sql

有没有办法通过pgAdmin恢复*.sql文件和*.backup文件一样?

postgresql database-restore database-backups pgadmin

1
推荐指数
1
解决办法
7805
查看次数

pgAdmin和Postgres.app有什么区别?

在阅读官方网站以及进行Google研究后,我仍然不清楚pgAdmin和Postgres.app如何相互关联?

例如,我可以同时在pgAdmin和Postgres.app的不同端口上运行两个不同的本地postgres服务器,这很令人困惑.我认为这些应用程序彼此依赖,但似乎并非如此.

postgresql pgadmin postgres.app

1
推荐指数
1
解决办法
1533
查看次数

pgAdmin 看不到 pgAgent 作业调度程序

我一直在尝试在 PostgreSQL 上安装 PgAgent。

正如您所看到的,我的目录和扩展中都有它。

但为什么它没有出现在我的表空间上?

在此输入图像描述

我也无法重置 PG 管理部分

在此输入图像描述

postgresql pgadmin

1
推荐指数
1
解决办法
6157
查看次数

无法关闭 pgadmin4 中的输出窗格

如何关闭 pgamin 输出窗口.. 我拖动/弹出 pgadmin 4 的输出窗口 .. 现在我无法将其关闭/合并回顶部图块。重新启动应用程序不起作用。看起来它记得我最后的动作

另外,我看到一个空白窗口。我正在使用 pgadmin4

在此输入图像描述

pgadmin pgadmin-4

1
推荐指数
1
解决办法
2159
查看次数

PostgreSQL 物化视图无法从 Python 刷新

我在 TimescaleDB(时间序列数据的 PostgreSQL 扩展)中创建了一个物化视图,当我使用来自 PGAdmin 的以下代码刷新它时,添加了最新数据并且一切正常:

REFRESH MATERIALIZED VIEW CONCURRENTLY 
    public.time_series_mv
    WITH DATA;
Run Code Online (Sandbox Code Playgroud)

当我在 Python 中使用相同的用户 (postgres) 运行完全相同的代码时,它表示成功(即没有发生错误)但最新的数据实际上并未添加到物化视图中......

因此,我尝试创建一个函数来做同样的事情:

CREATE OR REPLACE FUNCTION refresh_time_series_mv()
    RETURNS void
    SECURITY DEFINER
    AS $$
    BEGIN
    REFRESH MATERIALIZED VIEW CONCURRENTLY time_series_mv with data;
    RETURN;
    END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

然后我按如下方式运行该函数,同样,它在我的浏览器中从 PGAdmin 运行,但当我在我的调度应用程序中从 Python 运行相同的 SQL 时则不起作用。

select refresh_time_series_mv();
Run Code Online (Sandbox Code Playgroud)

这是我的 Python 代码:

import psycopg2

SQL1 = """
    REFRESH MATERIALIZED VIEW CONCURRENTLY 
    public.time_series_mv
    WITH DATA
"""

SQL2 = "select refresh_time_series_mv();"

host = os.getenv("HOST") 
port = int(os.getenv("PORT")) …
Run Code Online (Sandbox Code Playgroud)

python postgresql pgadmin timescaledb

1
推荐指数
1
解决办法
658
查看次数

pgadmin4 无法连接到服务器,致命:用户“postgres”的密码身份验证失败

我尝试配置 postgresql 以便能够“远程”连接到 pgadmin4 所以我在服务器中安装了 postgresql 版本 13,并且我尝试通过我的笔记本电脑访问它。

但为什么我总是出现错误,我刚刚更改了密码,然后在 pgadmin4 中输入用户名和密码,它仍然显示密码身份验证。

图片1

这是我的 pghba.conf 文件。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/0           trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             127.0.0.1/32            trust …
Run Code Online (Sandbox Code Playgroud)

postgresql pgadmin pgadmin-4

1
推荐指数
1
解决办法
7292
查看次数

在 postgres 中输入 float4 会截断值

我正在尝试将值插入到 postgres 的字段中。该字段中的数据类型是 float4。当我尝试向其中插入值时,值被截断,如下所示

value: 18754999.99, pgAdmin truncates to 18755000
Run Code Online (Sandbox Code Playgroud)

请问如何防止使用 float4 数据类型截断

sql postgresql pgadmin

1
推荐指数
1
解决办法
637
查看次数