草庐IT

postgresql_psycopg

全部标签

sql - PostgreSQL 可以从函数返回的数组中选择吗?

此查询失败:SELECTxpath('/my/xpath/expr',my_xml)[1]FROMmy_tableERROR:syntaxerroratornear"["但是这个有效:SELECTx[1]FROM(SELECTxpath('/my/xpath/expr',my_xml)asxFROMmy_table)asss我的xpath表达式总是只返回一个值,但Postgresxpath函数返回一个数组。我想选择数组中的第一个值。虽然子选择有效,但它非常丑陋。为什么第一个查询不起作用,有没有比第二个查询更简洁的方法? 最佳答案 这

xml - 在 postgresql 中分解 XML

在SQLServer2005的T-SQL语言中,我可以通过以下方式分解XML值:SELECTt.c.value('./ID[1]','INT'),t.c.value('./Name[1]','VARCHAR(50)')FROM@Xml.nodes('/Customer')ASt(c)@Xml是一个类似xml的值'23Google'有人可以帮助我在PostgreSQL中(可能在PL/pgSQL中)实现相同的结果吗? 最佳答案 xpath函数将返回一个节点数组,因此您可以提取多个合作伙伴。通常你会做这样的事情:SELECT(xpath(

xml - 如何使用 PostgreSQL 将一对多关系呈现给 XML

我的架构中有多个多对多关系。例如,一个包有很多任务组,任务组又有很多任务。所有表都通过多对多表链接在一起,例如保存包的主键和任务组的主键。(我知道这不是严格需要的,因为XML是一对多的,但我想不出更好的结构)。是否可以将查询结果作为XML,反射(reflect)一对多结构?所以,结果应该是这样的:我已经设法通过使用XMLELEMENT()和XMLATTRIBUTE()函数获得我想要的部分任务来完成所有任务。像这样:SELECTXMLELEMENT(nametask,XMLATTRIBUTES(p.nameaspackageName),XMLELEMENT(namedescription

xml - 如何使用 xpath 表达式在 PostgreSQL 中的 XML 列上创建索引?

尝试在AuroraDB-PostgreSQL9.6上使用xpath表达式的XML数据类型列上创建btree索引时遇到此错误:ERROR:couldnotidentifyacomparisonfunctionfortypexmlSQLstate:42883这个没有明确解决方案的2009线程是我发现的唯一一个讨论关于为更早版本的PostgreSQL创建基于xpath的索引的错误消息:https://www.postgresql-archive.org/Slow-select-times-on-select-with-xpath-td2074839.html在我的例子中,我也确实需要指定命名

sql - 如何将 postgresql 数据库模式导出为 XML 格式?

呃...如何将postgresql数据库模式导出为XML格式? 最佳答案 使用函数table_to_xml、schema_to_xml等之一。参见documentation. 关于sql-如何将postgresql数据库模式导出为XML格式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4964386/

xml - 在 PostgreSQL 中提取 xml 标签的值

下面是我的Postgres表的列响应。我想从我的Postgres数据库中的所有行中提取状态。状态也可能有不同的大小,例如SUCCESS,所以我不想使用substring函数。有办法吗?ERROR_MISSING_DATACOUNTRY_MISSINGUSA1234所以我的表结构是这样的Column|Type|Modifiers-------------+-----------------------------+----------------------------------------------------------id|bigint|notnulldefaultnextva

windows - 如何通过 Windows 任务计划程序执行 Postgresql 过程

如何使用Windows任务计划程序在我的POSTGRESQL数据库中执行类似SELECTmy_proc()的过程?是否可以制作一个脚本来每5分钟调用一次我的程序?如果可能的话,我需要一个。我不能在我的环境中使用pgAgent,对不起大家!有什么建议吗? 最佳答案 使用TaskScheduler按照所需的计划运行psql,命令如下:psql-Uusername-ddatabasename-w-c'SELECTmy_procedure()'并将密码放入你的.pgpass文件,或者在任务中设置一个PGPASS环境变量。除非您想执行特定于命

windows - 如果一个进程建立了多个 PostgreSQL 连接并在没有关闭它们的情况下终止,会发生什么?

我正在为购买的软件编写DLL。该软件将对某些任务执行多线程计算。我的工作是将相关结果输出到数据库中。但是由于软件支持有限,多线程输出数据有一定难度。关键问题是没有关于DLL函数最后一次执行的信息。因此,数据库连接不会被关闭。那么请问,如果我保持连接打开并终止进程,可能会出现什么问题?我的平台是winserver2008和PostgreSQL10。 最佳答案 我不明白你提供的背景信息,但我可以回答这个问题:如果PostgreSQL客户端进程在没有关闭数据库(和TCP)连接的情况下终止,则为该连接提供服务的PostgreSQL服务器进程

windows - 在 Windows 上的 PostgreSQL 的单个事务中运行多个 SQL 文件

我正在尝试在PostgreSQL的单个事务中运行多个SQL文件。在Linux环境中,这实际上可以通过使用here-document来实现:psql-Upostgres-hlocalhost-dmydatabase但我无法在Windows环境中实现相同的目标。 最佳答案 将所有内容放在一个文件中,例如\ifile1.sql\ifile2.sql然后用-f参数调用psql。要强制执行单个事务,请使用--single-transactionpsql-Upostgres-hlocalhost-dmydatabase--single-tran

windows - 如何在 Windows 系统之间恢复/移动 PostgreSQL 数据库架构和数据库?

我在WindowsXP上使用PostgreSQL9.2数据库。该数据库安装在操作系统分区下。不幸的是,我的硬盘驱动器坏了,但它可以用作第二个驱动器而不是可引导驱动器。所以我有我的PostgreSQL9.2文件夹,我可以从哪里检索我的数据库架构? 最佳答案 除非你在上次安装时做了一些奢侈的事情,否则你需要的所有文件都应该在数据目录中。这包括模式、配置和您用户创建的数据库。如果您运行安装程序(而不是手动设置),如果您使用某种安装程序,它可能会放入以下路径(对于Windows):C:\ProgramFiles\PostgreSQL\\da