问题标签 [postgresql-13]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - 精确匹配 rtrim 函数中的 trimming_text
如果我在 Postgres 或 Snowflake 中运行以下查询,它将test
从输入字符串的末尾删除,即使修剪文本是best
:
看:
https://www.db-fiddle.com/f/kKYwe5tNLpVoacM2q1nJY7/0
但是,我需要 rtrim 以仅在修剪文本完全匹配时删除。我怎么做?
arrays - 如何在 PostgreSQL 中的数组上添加外键约束?
如何在 PostgreSQL 中的数组上添加外键约束?
角色查找表
Party 可以有零个或多个角色 [ 0-N 关系 ]
如何在表中添加foreign key
约束?party_role_cd array
party
postgresql - pg Admin 4 - 尝试连接到 PostgreSQL 13 服务器时“postgres”用户的密码
我知道这个问题已经在其他时候被问过了,但我没有找到解决这个问题的方法!
我用 pg Admin 4 下载了 PostgreSQL 13,当我在安装后第一次打开它时,它会询问我在安装过程中被要求设置的主密码,在我提供主密码并被接受后,我尝试连接到安装期间创建的默认服务器:“PostgreSQL 13”。
此时,它要求我输入我不知道在哪里可以找到的用户“postgres”的密码。具体来说,它说:请输入用户“postgres”连接服务器的密码 - “PostgreSQL 13”。
我已经尝试了我在互联网上找到的所有“默认”密码,但错误总是相同的:
致命:用户“postgres”的密码验证失败
我也尝试不插入任何密码,导致错误:
fe_sendauth:未提供密码
我不知道该怎么办。在 PostgreSQL 13 中,身份验证方法通过scram-sha-256
. 我已经尝试将方法设置为信任,重新启动 mac,然后打开不断询问我访问服务器的密码的 pg Admin 4。
我也尝试过使用命令行工具,但最终遇到了同样的错误。
最后,这就是我的pg_hba.conf
样子:
PS。我还尝试卸载 PostgreSQL 13,删除 postgres 用户并重新下载并重新安装所有内容......没有任何改变。
如果有人可以帮助我将成为我的救星,在此先感谢!
java - 由于不支持身份验证类型 10,无法连接到 Postgres DB
我最近尝试了 Postgres。将其安装在本地(PostgreSQL 13.0)上。创建了一个 Maven 项目并使用了 Spring Data JPA,工作得很好。而当我尝试使用 Gradle 项目时,我无法连接到数据库并不断收到以下错误。
org.postgresql.util.PSQLException:不支持身份验证类型 10。检查您是否已将 pg_hba.conf 文件配置为包含客户端的 IP 地址或子网,并且它正在使用驱动程序支持的身份验证方案。在 org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:614) ~[postgresql-42.1.4.jar:42.1.4] 在 org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java: 222) ~[postgresql-42.1.4.jar:42.1.4] 在 org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49) ~[postgresql-42.1.4.jar:42.1.4] 在 org. postgresql.jdbc.PgConnection.(PgConnection.java:194) ~[postgresql-42.1.4.jar:42.1.4] at org.postgresql.Driver.makeConnection(Driver.java:450) ~[postgresql-42.1.4. jar:42.1.4] 在 org.postgresql.Driver。
我也尝试使用 JDBCTemplate。不工作
修改了参考这篇文章的 pg_hba.cfg 文件 - 不起作用
使用了已弃用的库 - 也不起作用。
请建议我解决此问题。
我的代码和配置:
依赖关系
password_encryption
设置如下:
postgresql - PostgreSQL 与版本 12 和 13 混淆
我对 PostgreSQL 相当陌生,但我对 SQL 有一些了解。我一直在使用带有 MacOS 附带的 postgres 上的表和数据的数据库(我假设),因为当我启动服务器时,访问给定的数据库并SELECT version();
在终端上运行我得到以下信息:
PostgreSQL 12.3 on x86_64-apple-darwin19.4.0, compiled by Apple clang version 11.0.3 (clang-1103.0.32.59), 64-bit
但是,我看不到它存在,Library/PostgreSQL
因为它不存在。
所以现在我安装了 PostgreSQL 13 以便在上课时使用,并且还安装了 pgAdmin。它应该已经安装在下面,Library/PostgreSQL/13/
但它也不存在。不过,我可以通过 pgAdmin 及其所有表访问 12(端口 5432)和 13(端口 5433)的服务器。我可以从 pgAdmin 和终端中的 12 访问表。
我对一切的设置方式有点困惑,我找不到合适的教程来解决它,所以我有几个问题:
- 我怎样才能摆脱两个版本,只运行一个与我的所有数据库相同的版本?感觉会更有条理。
- 如何通过终端访问13版本的服务器?
- 如何卸载版本 12?我尝试运行
open uninstall_postgresql.app
,但该文件夹不再存在。 - 如果我通过:
psql -U postgres -p 5433
: 访问,那psql (12.3, server 13.0) WARNING: psql major version 12, server major version 13.
为什么呢?
database - 在 PostgreSQL 中释放项目标识符后,空间将如何被重用?
最近我开始对 PostgreSQL 空闲空间管理和碎片整理做一些研究。我知道堆上的每个页面都包含一个页眉、页面标识符、可用空间和项目。当插入一个新的元组时,一个新的项目标识符将被插入到空闲空间的开头,新的项目数据将被插入到空闲空间的末尾。
使用后Vacuum
,dead tuples 的 item 标识和 item 数据将被移除。如果删除的项目标识符在其他标识符的中间,则标识符之间会有间隙。由于通常新的标识符将被添加到空闲空间的开头,这之间的空闲空间会再次被重用吗?如果是这样,我们怎样才能找到这个空间?
这是此场景的可视化示例:
删除一些元组后,(0,3) 和 (0,5) 之间有未使用的空间。这个空间将如何再次被重用?谢谢!
stored-procedures - 如何在 PostgreSQL 13 中使用 INOUT 参数调用存储过程(不是函数)
我有这个存储过程:
和呼唤:
但是当我调用该存储过程时出现此错误:
错误:“INT”处或附近的语法错误
第 1 行:声明 secuencial INT;
怎么了?我正在寻找示例,但仅存在于函数中。
sql - 如果我使用 5 个字符的搜索文本,则 Postgresql 不使用索引。使用 6 就可以了。为什么?
我正在使用 Postgresql 13。
通过这个查询,PostgreSQL 正在使用索引:
使用相同的查询,但搜索文本少一个字符(从lushij
到lushi
),不使用索引:
为什么?
更新:
如果我评论LIMIT 15
行,则使用索引。
这里的结构:
球员表结构