Postgresql 使用postgres中主查询的值执行子查询

我试图通过使用子查询中主查询的相同值来匹配两个表之间的数据。为此,我使用了3个表: 世界-玩家所在的世界区域 玩家-实际玩家 被摧毁的物品-只是一个用来记录玩家世界进步的统计表 我想做的是创建一个查询,显示游戏和他们所在的世界,并获得他们在该世界中破坏的所有对象的计数。我的查询当前是这样的: select world_id, world_name, player_id count(select * from objects_destoryed where play

pgcrypto Postgresql PGP PGP_发布_使用密码解密

我在使用Postgresql 8.4通过pgcrypto进行数据加密时遇到了一些问题 第一种情况:工程罚款: 选择pgp_pub_decrypt(pgp_pub_encrypt('fsck'), dearmor(pubkey),'compress-algo=1, 密码algo=aes256'),来自keytbl的dearmor(seckey)),其中keytbl.id=1 ->返回“fsck” 密钥1是没有密码的pgp 第二种情况:不起作用 选择pgp_pub_decrypt(pgp_pub_e

Postgresql 如何获得一列连续递增的数字,而不丢失任何数字?

可能的重复项: 我只是想问,在PostgreSQL中是否存在这样的可能性,如果我有5行,在一列中有数字1,2,3,4,5,如果我删除这些列,比如说tird行,PostgreSQL会重新枚举该列,这样我就可以有1,2,3,4,而不是1,2,4,5?根据先前的答案改编。当应用程序需要变量的制表顺序(读取:EAV模型中的记录)时,这种情况经常发生,也可能是备用键的一部分 优先级字段需要保持连续。[这是制表顺序] 插入时:优先级>=新记录的所有记录的优先级应增加 类似地:删除->递减 如果更新更

Postgresql 每个表的索引数

根据您的经验,Postresql中每个表的索引数量是否有实际限制?根据引文,理论上没有“每个表的最大索引数不受限制”,但: 是否索引越多,查询速度越慢?如果我有几十个、几百个甚至几千个索引,会有什么不同吗?我是在阅读了postgres的文档之后问的,这让我想到了一些非常有创意的解决方案,但是,这些解决方案需要很多索引 以几种不同的方式拥有大量索引会带来开销: 空间消耗,当然,部分索引会降低空间消耗 查询优化,通过使优化器计划的选择可能更加复杂 表修改时间,通过插入新行或删除或修改当前行时修改索引

如何使用pgAdmin在PostgreSQL中创建复合类型?

我对博士后很陌生。基本上,我想做的是创建一个表,其中每个条目基本上包含一个结构(用C术语)或一个对象 我相信这就是所谓的复合型?无论如何,它本质上是这样的(伪代码): 我在用pgAdmin乱搞 问题是,当我添加一个表,然后再添加一个列时,我并没有看到任何数据类型似乎可以表示这样的数据结构。我认为有一种复合类型基本上可以让我这样做 我的主要目标是能够通过pgAdmin实现这一点,但如果这根本不可能,我愿意接受其他想法,寻找最简单的方法 这个设计看起来非常奇怪-你可能应该仔细阅读一下规范化 您首先需

Postgresql 无法查看简单的数据跟踪消息

我似乎无法查看Simple.Data库的跟踪消息。我正在使用Postgresql提供程序 我已将以下内容添加到web配置中,以确保所有消息都能通过: system.diagnostics> <switches> <add name="Simple.Data" value="4" /> </switches> </system.diagnostics> 系统诊断> 但还是什么都没有。我可以使用trace.wr

Postgresql 无法访问记录id字段

我导入了一个Excel电子表格,其中包含一对多关系条目。例如,一个企业有一个法定名称,但有多个地点,每个地点都有一个DBA名称。每个DBA位置都有一个记录。我正在筛选输入数据,为一个表中的每个合法业务名称创建一个条目,并为每个DBA位置创建一个业务位置条目。我试图手动将合法业务的记录ID分配到其每个DBA业务位置记录中 这是我的问题。当我尝试以下方法时: @dba_business.legal_business_id = @legal_business.id 我得到以下错误 未定义的方法“id

Postgresql 如何从浏览器访问数据库?

我注意到,对于Postgres和其他数据库,数据库本身运行的是服务器的本地版本 例如,mine正在localhost:5432上运行 奇怪的是,我打开我的网络浏览器,试着输入那个地址,看看能得到什么,但我得到的回答是“这个网页不可用” 我也尝试过类似于localhost:5432/mydata的方法,但也没有用 如果我通过网络浏览器访问数据库,难道我不能看到一些东西吗?如果是,你是怎么做的?如果不是,为什么不呢?Postgres是一种在端口上运行的服务。web服务器也是在端口(通常为80和/或4

Postgresql 压制;注意:关系存在“;当使用;创建。。。“如果不存在”;

我有一个函数,可以创建一个临时表来存储和处理数据。问题是我想在一个事务中以100万次的顺序运行此函数,而不需要: NOTICE: relation "foo" already exists, skipping 输出约100万次。有没有一种有效的方法 什么是无效的: 放下桌子 DROP TABLE IF EXISTS 导致共享内存耗尽 捕获重复的_表异常(如果不存在,则比使用效率低?) 简单地 在运行语句之前 您还可以在批执行的psql命令行上设置它 PGOPTIONS="-c cli

postgresql将数字转换为日期和格式

在postgresql中,我的日期字段是数字字段,日期中的值类似于1401710352000,当我尝试使用转换为时间戳(date)时,我会得到相应的时间戳“46388-06-07 10:40:00+00” 我试过用谷歌搜索它,我发现了一些非常有用的函数,可以在postgresql中进行不同类型的转换,但我找不到如何将数字日期转换成合适的可读格式。如果有人能告诉我如何将数字日期字段转换为时间戳/日期可读格式,我将不胜感激 沙阿来自: 到时间戳(双精度) 带时区的时间戳 将Unix历元转换为时间戳

Postgresql 获取表之间所有关系和表的方法

我正在研究一个非常拥挤的PostgreSQL数据库 数据库中有上百个表之间的关系。但是我想链接两个名为“client”和“services”的表(以便查询这些表),但我不知道链接它们需要什么关系 我无法安装执行此操作的工具。我只能使用命令行界面 有办法吗 编辑:这个问题不重复,因为我从不询问表中的关系。 我想要一种在两个表之间映射(获取所有表)的方法。这两个表没有共同的关系,因为它们与数据库中的许多表相距很远。在提问之前,您是否尝试过搜索?这里有一个例子:是的,我发现了,但这不是我想要的。请考虑

Postgresql 为什么选择localtimestamp会在两台不同的带有Postgres的机器上返回不同的时区

如果我在Postgres 9.2上执行 show timezone 在我的机器上,它返回本地时区 America/Denver 当我对旁边的人运行相同的postgres命令时,它会返回 US/Eastern 有人知道为什么Postgres服务器会为两个不同的人使用两个不同的时区吗?语句show timezone显示当前客户端会话的时区。这可能是也可能不是PostgreSQL server的时区 要了解其工作原理,请在同一台计算机上打开两个终端会话,并使用psql将它们分别连接到数据库。(我

更新列出的所有列时触发Postgresql

从postgresql: 对于更新触发器,可以使用指定列列表 此语法: 更新列名称1[,列名称2…] 只有在列出的列中至少有一列被提及为更新目标时,才会触发该触发器 是否有一种方法可以仅在更新中以列出的所有列为目标时触发触发器 是否有一种方法可以仅在更新中以列出的所有列为目标时触发触发器 否。如果列出的任何列被更新,触发器将触发 但是,原则上,您可以比较OLD.column\u name和NEW.column\u name的值,并且仅当所有列都已更改时才执行代码 不过,您应该知道,使用列已有的值

Postgresql 无法创建Sqlalchemy查询

我有四张桌子 事件 事件ID 事件名称 卖方ID 拍卖 拍卖ID 事件ID 出价 投标编号 拍卖ID 买方ID 创建日期 命令 订单号 事件ID 买方ID 创建日期 现在在这个模式中 订单和拍卖取决于事件 投标依赖于拍卖 活动可以有多个订单和拍卖,拍卖可以有多个出价 我想创建一个查询,以便选择其订单具有特定买家ID或其拍卖具有具有特定买家ID的竞价的所有事件。获取此查询需要几个连接。我想这不是问题所在。问题是我必须按照Biddings.Creation\u Date和Orders.Creatio

PostgreSQL 9.3:更改数据库以设置用户

我想使用函数在postgreSQL中还原数据库 在函数中,我要执行以下步骤: 首先,我想将数据库更改为要访问的单用户 恢复数据库 我想再次更改数据库以设置MLTI\u用户 在SQL Server中,我使用了以下脚本: ALTER DATABASE DBName SET SINGLE_USER WITH ROLLBACK IMMEDIATE; RESTORE DATABASE DBName FROM DISK = @Fullpath with replace; ALTER DATABASE D

Postgresql 在pgAdmin中,表通常需要真空

我正在使用java Play!使用Ebean(2.0.0)和PostgreSQL(9.5)的框架(2.4.2) 在通过pgAdmin查看表格时,我经常得到这样一条信息,即我应该运行真空分析操作,大多数情况下,我会得到以下结果: 详细信息:尚未删除0个死区版本。有0个 未使用的项指针。由于缓冲区引脚,跳过了0页。共有0页 空空如也。CPU 0.00s/0.00u秒经过0.00秒。 信息:«已连接的对象»:1页,地块南1,上下文26 保存者和供应者的数量分别为0和26 莱尚蒂隆,总共26条路线 =>

Postgresql 使用ST_与ST_MakePoint相交,但不使用SET_SRID

我使用在ST_相交的地方(ST_setrid(ST_MakePoint($1,$2)::geography,4326),geog)在geography字段中找到一个点(在示例查询中名为geog) 由于我无法完全理解的原因,ST_SetSRID有时会导致问题,从查询中删除它会消除这些问题。我想从查询中删除ST_SetSRID,但找不到任何地方可以解释SRIDST_相交将使用什么 geog的SRID为4326。ST_相交是否只使用它,或者假设没有坐标系,并给出与使用ST_setrid时不同的结果

Postgresql 针对当前时间的时间戳部分索引

我有一个查询,通过比较五个月前的插入时间戳来过滤行 此字段不会得到更新,如果有帮助,我们可能会认为它是不可变的 CREATE TABLE events ( id serial PRIMARY KEY, inserted_at timestamp without time zone DEFAULT now() NOT NULL ); SELECT * FROM events e WHERE e.inserted_at >= (now() - '5 minutes'::int

如何将pdf插入postgresql(远程数据库)

我有一份私人文件 我可以插入pdf文件,使用下面的函数和命令,db在同一服务器上可用 作用 create or replace function bytea_import(p_path text, p_result out bytea) language plpgsql as $$ declare l_oid oid; r record; begin p_result := ''; select lo_import(p_path) into

Postgresql pgAdmin4的SSH隧道支持解决方案?

在安装Vagrant/VirtualBox并使用ssh隧道通过pgAdmin 3连接到数据库后,我被警告它与pgAdmin 3不兼容。我仍然可以连接,但一段时间后pgAdmin似乎会随机关闭。pgAdmin 4没有对ssh隧道的内置支持(并且在版本2.0发布之前不会) 是否有在pgAdmin4中创建ssh隧道的命令行解决方案 Vagrant版本1.9.2、VirtualBox 5.1.18、PosgreSQL 9.5.6您可以安装更新的PgAdmin III吗?或者,您可以始终通过快捷方式文

Postgresql 将0x00视为空

我有一个包含大量音乐数据的大文件(超过1gb),我想使用COPY命令读取此文件。这是一张大桌子。有很多音轨 但是,在第372032行,有一些曲目没有流派,而是一个0x00字符。在谷歌搜索之后,我发现0x00字符是一个空符号,但是postgresql在读取这个字符时遇到了问题 我想要的是postgresql将0x00视为NULL。查看,发现copy命令有一个选项,可以将特定字符串读取为NULL。我尝试了这个方法,但通过添加NULL选项“\0x00”(我也尝试了“\x00”、“0x00”、“x00”

Postgresql pgsql中的to_date函数错误

当我执行上述代码时,得到了错误 CREATE OR REPLACE VIEW view_wf_task_log (id, taskid, ref_slip_code, toworkflownodename, fromworkflownodename, operator, operationdesc, operatedate, entertime, timeconsuming2, remark) AS SELECT l.id , t.id as taskId,

Postgresql Docker在生成容器时复制PGDATA文件夹

我在使用postgres:9.5docker官方图像时遇到问题 我使用Docker在几个开发人员之间共享一个开发环境。我的设置由应用程序代码的图像和数据库的图像组成。我通过docker compose编排这些。我的问题是数据库映像 我正在使用postgres:9.5official image作为创建数据库映像的基础。我通过一个每日运行的脚本来实现这一点,该脚本执行以下操作: # pull and run -d postgres:9.5 named "mydatabase" with custo

Postgresql 排除约束为唯一约束,有区别吗?(之二)

假设下表: CREATE TABLE zoo ( cage INTEGER, animal TEXT, ); 以下各项之间真正有效的区别是什么: ALTER TABLE zoo ADD CONSTRAINT x EXCLUDE USING gist (cage WITH =, animal WITH <>) ? 我从中获取了这个示例,但不明白为什么他们用排除约束而不是好的旧唯一约束来表示这个示例。所以我想知道这两者是否真的有区别。两者做的事情不同 排除约束正是

Postgresql:如何在jsonb字段上增加1

在Postgresql9.6中,有一个表包含一列datajsonb,它有一个count字段。 如何在单个sql中将数据->>计数增加1?就像mongodb的$inc。这很难看,但很有效。我现在只是通过阅读来弄明白这一点,所以很可能有更好的方法 让我们从一个简单的表开始: create table table1 (data jsonb); 插入一些JSON: insert into table1 (data) values ('{"name": "example", "count": 0}');

无法为KeyClope配置postgreSQL数据源

我正试图通过以下方法配置PostgresSQL数据源: 文档中提供的教程: . 我通过运行 standalone.bat并通过在 keydepot-3.0.0.Final/standalone/configuration/standalone.xml 我正在一步一步地遵循文档,但我得到了以下信息 每次运行standalone.bat时出错,因此我无法连接到数据库 15:33:11,684 ERROR [org.jboss.as.controller.management-operation]

Postgresql 带列引用的歧义

我尝试运行一个简单的代码,如下所示: Create Table weather ( city varchar(80), temp_lo int, temp_hi int, prcp real, date date ); Insert Into weather Values ('A', -5, 40, 25, '2018-01-10'); Insert Into weather Values ('B'

Postgresql 在更新查询中将两个字符串连接到更新列

我想通过将两个字符串连接在一起来更新列,但postgresql(版本10)给了我一个不可能的错误 这是select查询的结果: select game_id, distro, kernel, de, os_bit, 'ubuntu ' || (regexp_matches(distro, '(x|k)ubuntu ((16|18|17)(\.04|10)(\.\d)).+'))[2] from games where distro ~ 'ubuntu (16|18|17)(\.04|10)(\

PostgreSQL:提高计算不同数据的性能

我目前正在努力提高我们数据库的性能。我需要你的帮助。 我有一个这样的表和它的索引 CREATE TABLE public.ar ( id integer NOT NULL DEFAULT nextval('id_seq'::regclass), user_id integer NOT NULL, duration double precision, is_idle boolean NOT NULL, activity_id integer NOT NULL

如何更新postgresql中的jsonb列,它只是一个值数组,没有键

我需要更新一个名为“垂直”的jsonb列,它包含的值数组类似于HOM、BFB等。数组中没有键 表:产品(垂直jsonb,代码int) “垂直”列中存储的样本值为 [HOM,rst,NLF,WELSAK,HTL,TRV,EVCU,GRT] 我需要在code=1的“垂直”列中将值“HOM”更新为“XXX” 我的预期产出是 [XXX,rst,NLF,WELSAK,HTL,TRV,EVCU,GRT] 应该使用jsonb_集(目标jsonb,路径文本[],新值jsonb[,创建缺少的布尔值])和数组位

Postgresql 如何在使用不同列值条件查询同一表时处理空值

有一个名为Products的表,它有100个列。我正在运行一个不同的column1、column2、column3…column6 postgresql查询,结果如下: 2产品A 300 2017空 2产品A 300 2017空 由于空值,我得到的不是一行而是两行。如何解决这个问题?非常感谢您的帮助。删除上述重复项的一种方法是使用分组方式对需要不同值的列进行分组。像这样的 SELECT column1, column2, column3, ...,column6 FROM sometable

Postgresql 使用带有pgbouncer和Postgres的tsl的证书失败

您好,我们遇到了PostgreSQL 11和pgbouncer 1.9之间的tls问题,这两个版本都位于不同容器中的同一主机上。 tls已启用,并且正在客户端和pgbouncer之间以及pgbouncer和PostgreSQL之间工作。 问题在于,客户端使用客户端密钥和证书连接到pgbouncer,并在验证pgbouncer后将其用户名和密码传递给postgreSQL,并使用其自己的pgbouncer证书。我们立即得到了错误,因为PostgreSQL检查了cert中的用户名和用户名,但它们不匹配

Postgresql 查询每个组的最新记录

我有一个表名price: CREATE TABLE price ( price_id bigint pk, product_id bigint, start_date timestamp with timezone ) 对于查询: select price_id, product_id, price, start_date from price where start_date <= current_timestamp 如您所见,有多个产品ids,对于每个产品id,有多

无法从Power BI连接到PostgreSQL

我已在本地计算机上下载了Power BI Desktop。当尝试连接到PostgreSQL时,它抛出了一个错误 为此,我下载并安装了NpgSQL版本3.2.7,并重新启动了我的机器。即使在这之后,我也无法连接到PostgreSQL连接器。尝试将PostgreSQL服务器的SSL证书复制到运行Power BI Desktop的计算机上,并将其导入Windows证书存储 转到PostgreSQL.conf文件中的PostgreSQL server配置文件夹,搜索SSL设置,其中有一个带有SSL证书

Postgresql 强制“不为空”;第1行:…r#u名称)来自标准DIN CSV报价'&引用';逃逸'''';强迫你不要_

我正在尝试将表导入postgresql数据库。 csv文件中的某些字段的空值为“\N”或“N”。 我得到了这个错误 ERROR:FORCE\u NOT\u NULL处或附近的语法错误 第1行:…r_名称)从标准输入CSV引号“转义”强制\u不。。。 语法不正确。应该是 COPY ... FROM ... (FORMAT 'csv', QUOTE '"', ESCAPE '''', FORCE_NOT_NULL (...))

Postgresql 向多个代理注册kafka connect PG连接器时出现错误500无法创建PG连接

当单一的分布式模式不能让我满意时,我尝试使用多个代理kafka。但我在注册kafka源Postgresql连接器时遇到了另一个问题。注册时它总是给我发送错误500。这是我的kafka connect分布式配置: bootstrap.servers=localhost:9093,localhost:9094,localhost:9095 group.id=connect-cluster key.converter=org.apache.kafka.connect.json.JsonConverte

在CentOS 8上安装PostgreSQL 12时出现问题

安装PostgreSQL 12: sudo dnf install @postgresql:12 然后,为附加功能提供contrib包:sudo dnf install postgresql contrib 之后,当我尝试初始化PostgreSQL数据库时: sudo postgresql-setup initdb 我得到:sudo:postgresql设置:未找到命令 另外,当我尝试检查状态时: sudo systemctl status postgresql 获取此错误:Unit p

Postgresql 如何从ElephantSQL进行pg_转储

我正在尝试执行@ElephantSQL server下面的代码: pg_dump postgres://my_user:my_pass@lallah.db.elephantsql.com/my_user 但它不工作,没有错误消息。屏幕被卡住了,只加载了 有什么想法吗 谢谢大家!

postgresql:为什么空值比空字符串提高性能?

我们有一张有600万张唱片的桌子。它包含分层实体,即每个实体都有一个指向父-父id字段的链接 95%的行是顶级实体,即它们有一个空的parrent_id字段(空字符串) 单个实体的递归查询(获取其所有子实体)存在性能问题。查询计划器错误地估计了子项计数,并且更喜欢“seq scan”而不是“index scan”by parrent_id字段。 我认为规划者是这样工作的,因为我们有一个不均匀分布的parrent_id值。 pg_统计数据显示: 最常见的值:“” n_distinct:73(事实上

都是大言不惭,但这与CPU实现无关。当然,PostgreSQL可以有不同的工作方式,但也不需要。我看不出问题所在-运行两个不同的SQL语句。嗨,很抱歉使用“CPU”这个术语,它与“CPU规模”无关,而且我不是数据库并发方面的专家。。。在PostgreSQL

都是大言不惭,但这与CPU实现无关。当然,PostgreSQL可以有不同的工作方式,但也不需要。我看不出问题所在-运行两个不同的SQL语句。嗨,很抱歉使用“CPU”这个术语,它与“CPU规模”无关,而且我不是数据库并发方面的专家。。。在PostgreSQL世界中,正确的术语可能是“快照”(或“线程”或“并行事务”)。我评论的重点是管道并行性(一个与规模无关的概念),然后一个子问题是“为什么PostgreSQL不使用管道?”。你基本上是在抱怨,因为PostgreSQL的工作方式与你所希望的不同。“

为什么PostgreSQL认为范围类型中的空边界与无限边界不同?

只是在前言中,我不是在问零边界和无限边界之间的区别是什么——这是事实。相反,我想问的是,当(据我所知)空边界和无限边界的功能完全相同时,为什么PostgreSQL会区分它们 我最近开始使用PostgreSQL的范围类型,我对范围类型中的空值的含义有点困惑。说: 范围的下限可以省略,这意味着小于上限的所有值都包含在范围中,例如(,3]。同样,如果省略范围的上限,则所有大于下限的值都包含在范围内。如果同时省略下限和上限,则元素类型的所有值都被视为在范围内。 这对我来说意味着范围中省略的边界(即范围类

PostgreSql还原错误:";用于编码的字节序列无效";UTF8";:0x8b";

在cmd上使用以下命令时,我收到“编码“UTF8”的无效字节序列:0x8b”错误: cat C:\\backup\\my_database.gz|docker exec-i我的容器psql-U postgres-d我的数据库 在运行此命令之前,我使用以下命令创建一个空数据库: docker exec my container bash-c“createdb-U postgres my_database” 那么,如何防止此错误(例如,在命令行上为备份或还原过程添加一些参数)?或者其他解决这个问题的