标签: postgresql-11

PostgreSQL 11-过程

具有最新的PostgreSQL支持程序。官方博客引用“与函数相反,不需要过程来返回值”。https://blog.2ndquadrant.com/postgresql-11-server-side-procedures-part-1/

所以我的问题是,实际上我有什么方法可以在过程中返回错误代码或响应吗?(由于Postgres中的程序比较新,因此在线资源很少。)

这是我返回这些“错误代码”的意思的示例

create or replace PROCEDURE multislot_Update_v1
(
  p_id in varchar2,
  p_name in varchar2,
  p_enname in varchar2,
  results out SYS_REFCURSOR
) AS
rowNumber int;
defaultNumber int;
BEGIN

   select count(1) into rowNumber from MULTISLOTSGAME where fid=P_id;

    if (rowNumber = 0) then
      open results for
      select '1' as result from dual;
      return;
    end if;

  update MULTISLOTSGAME  set
    name = P_name,
    enname = P_enname
  where fid = P_id ;
  commit;

 open results for
  select '0' as result, t1.* …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql postgresql-11

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

PostgreSQL负整数溢出

我在使用tinyint扩展时对Postgres进行了一些测试,当时我遇到了关于其范围的令人惊讶的事情.打字时,select -128::tinyint它给了我一条ERROR: tinyint out of range消息,这根本不是我所期待的.

假设负数应该比正的最大值(或单个字节整数为127)大1(或者更小)我认为这是扩展的错误,但是在尝试使用非扩展数字时,我发现完全相同的是发生.

select -32768::smallint - >超出范围

select -2147483648::integer - >超出范围

select -9223372036854775808::bigint - >超出范围

参照数字数据类型的文档(https://www.postgresql.org/docs/current/datatype-numeric.html)这些数字都应该是可能的-所有负数少了一个-32767,-2147483647,-9223372036854775807正常工作,所以我很好奇,为什么会这样,或者这甚至发生在其他人的副本上.

我尝试在ubuntu 16.x桌面上使用postgresql 10和postgresql 11.

postgresql postgresql-10 postgresql-11

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

Postgres 11 存储过程不返回结果

在 Postgres 11 中,存储过程不打算返回结果集吗?因为当我们运行以下命令时,它说运行成功,但没有返回结果。

CREATE OR REPLACE PROCEDURE test()
LANGUAGE sql
AS $$
  SELECT * from aTable;
$$;

call test();
Run Code Online (Sandbox Code Playgroud)

stored-procedures postgresql-11

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

Postgres 排序顺序错误

Postgres order by 得到错误的结果:

\n\n
postgres=# SELECT (url) FROM posts_post ORDER BY url;\n                                               url\n--------------------------------------------------------------------------------------------------\n -----------------------------------------------------------------------------------------\n http://nautil.us/issue/70/variables/aging-is-a-communication-breakdown\n https://github.com/felixse/FluentTerminal\n http://www.bbc.com/future/story/20160408-the-ancient-peruvian-mystery-solved-from-space\n http://www.graffathon.fi/2016/presentations/additive_slides.pdf\n(4 rows)\n
Run Code Online (Sandbox Code Playgroud)\n\n

如您所见,“ http://nautil.us/issue/70/variables/aging-is-a-communication-breakdown ”存在问题。它排序不正确。

\n\n

我使用 Python 和 psycopg2 将解析结果保存在 Postgres 中,并指出我无法测试排序,导致 Postgres 返回 order by 错误。

\n\n

更新:重现:

\n\n
CREATE TABLE test_post ("id" serial NOT NULL PRIMARY KEY, "title" text NOT NULL, "url" text NOT NULL, "created" timestamp with time zone NOT NULL);\n\nINSERT INTO test_post (title, url, created) VALUES (\'Aging Is\', \'http://nautil.us/issue/70/variables/aging-is-a-communication-breakdown\', NOW()) ON CONFLICT DO NOTHING;\n\nINSERT INTO test_post …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-11

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

Postgres:psql:致命:数据库“root”在 Windows 10 中不存在

请检查我运行的以下命令:

C:\Windows\system32>psql -U root
Password for user root:
psql: FATAL:  database "root" does not exist

Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-11

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

Postgresql 损坏的 pg_catalog 表

我一直在外部硬盘驱动器上运行 postgres 数据库,在将其重新连接到一台睡眠中的笔记本电脑(认为服务器仍在运行)后,该数据库似乎已损坏。运行一堆重新索引命令来修复其他一些错误后,我现在收到以下错误。

错误:pg_toast_2618 中的 toast 值 12942 缺少块编号 0

返回此错误的命令示例是:

select table_name, view_definition from INFORMATION_SCHEMA.views;
Run Code Online (Sandbox Code Playgroud)

我已经运行命令“select 2618::regclass;” 这给了你问题表。然而,重新索引似乎并不能解决问题。我看到很多关于查找损坏的行并将其删除的建议。但是,在我的实例中似乎已损坏的表是 pg_rewrite,它似乎不是损坏的行,而是损坏的列。

我已经运行了以下命令,但它们没有解决问题。

REINDEX table pg_toast.pg_toast_$$$$;
REINDEX table pg_catalog.pg_rewrite;
VACUUM ANALYZE pg_rewrite; -- just returns succeeded.
Run Code Online (Sandbox Code Playgroud)

我可以运行以下 SQL 语句,它将返回数据。

SELECT oid, rulename, ev_class, ev_type, ev_enabled, is_instead, ev_qual FROM pg_rewrite;
Run Code Online (Sandbox Code Playgroud)

但是,如果我将 ev_action 列添加到上面的查询中,它会引发类似的错误:

错误:pg_toast_2618 中的 toast 值 11598 缺少块编号 0

此错误似乎会影响对 INFORMATION_SCHEMA 表等内容的所有与架构相关的查询。幸运的是,似乎我的所有表和表中的数据都很好,但我无法查询生成这些表的 sql,并且我创建的任何视图似乎无法访问(尽管我注意到我可以创建新视图)。

我对 Postgresql 不太熟悉,无法确切知道 pg_rewrite 是什么,但我猜我不能只截断表中的数据或设置 ev_action = null。

我不确定下一步该怎么处理我迄今为止收集到的信息。

postgresql corruption postgresql-11

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

有没有办法让postgresql监听不同的端口?

我正在运行 PostgreSQL,并且必须在端口 5432 和 5433 之间进行更改。

如何配置 Postgres 同时监听两个端口?

postgresql postgresql-11

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

PostgreSQL - 如何检查shared_buffers的使用情况

我是 PostgreSQL 新手,我想了解如何查看 PostgreSQL 实例中共享缓冲区的利用率。

假设我的配置中有shared_buffers = 8GB,有没有办法检查该8GB中使用了多少?

非常感谢,苏雷什。

postgresql postgresql-11

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

_text postgres 数据类型

我得到一个类型为 _text 的表

创建表mt(id int8,
方向_text null)

它不是我的代码,所以我不知道什么是 type _text 以及如何使用它。我在文档https://www.postgresql.org/docs/11/datatype.html中查找它 ,但没有找到。

我的问题是有人在 postgresql 中使用 _text 吗?我需要一个例子。

postgresql postgresql-11

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

如何为PostgreSQL中的特定表提供写权限?

我的 PostgreSQL 11 中有一个具有只读访问权限的用户。我如何授予他们在某些数据库表中写入/编辑数据的权限,例如Table1Table2仅?

我不希望他们更改数据库架构或表结构。

postgresql permissions postgresql-11

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