Questions tagged «postgresql»

PostgreSQL是一个开放源代码的,对象关系数据库管理系统(ORDBMS),可用于所有主要平台,包括Linux,UNIX,Windows和OSX。提出问题时,请注明确切的Postgres版本。有关管理或高级功能的问题最好直接到dba.stackexchange.com。


8
按ID删除数百万行的最佳方法
我需要从PG数据库中删除大约200万行。我有一个需要删除的ID列表。但是,我尝试执行此操作的任何方法都需要花费几天的时间。 我尝试将它们放在一个表中并按100个批次进行处理。4天后,它仍在运行,仅删除了297268行。(我必须从ID表中选择100个ID,删除该列表中的位置,从ID表中删除我选择的100个ID)。 我试过了: DELETE FROM tbl WHERE id IN (select * from ids) 这也是永远的。难以估计需要多长时间,因为直到完成我才能看到它的进度,但是查询在2天后仍在运行。 当我知道要删除的特定ID且有数百万个ID时,这只是一种寻找从表中删除的最有效方法。


7
使用psql以SSL模式连接到PostgreSQL
我正在尝试为PostgreSQL服务器配置ssl证书。我已经在数据目录中创建了一个证书文件(server.crt)和密钥(server.key),并将参数SSL更新为“ on”以启用安全连接。 我只希望仅在客户端使用服务器证书对服务器进行身份验证,而不要求在服务器端使用客户端的真实性。我使用psql作为客户端来连接和执行命令。 我正在使用PostgreSQL 8.4和Linux。我尝试使用以下命令连接到启用了SSL的服务器 psql "postgresql://localhost:2345/postgres?sslmode=require" 但我越来越 psql: invalid connection option "postgresql://localhost:2345/postgres?sslmode" 这是怎么了?我尝试在启用SSL模式的情况下连接服务器的方法是否正确?只验证服务器而不验证客户端是否可以?

1
找不到从未知到文本的转换功能
在我的选择语句之一中,出现以下错误: ERROR: failed to find conversion function from unknown to text ********** Error ********** ERROR: failed to find conversion function from unknown to text SQL state: XX000 使用可以轻松修复此问题cast,但我不完全了解为什么会发生。我将用两个简单的陈述来说明我的困惑。 这是可以的: select 'text' union all select 'text'; 这将返回错误: with t as (select 'text') select * from t union all select 'text' 我知道我可以轻松解决它: …

1
比较MySQL,PostgreSQL和SQLite中的数据库列类型?(跨图)
我正在尝试找到一种在最常用的数据库之间关联列类型的方法:MySQL,PostgreSQL和SQLite。 这是到目前为止的内容,但恐怕还没有完成,我需要一些经验丰富的人来帮助我完成所有遗漏的类型。 MySQL PostgreSQL SQLite TINYINT SMALLINT INTEGER SMALLINT SMALLINT MEDIUMINT INTEGER BIGINT BIGINT BIT BIT INTEGER _______________________________________________________ TINYINT UNSIGNED SMALLINT INTEGER SMALLINT UNSIGNED INTEGER MEDIUMINT UNSIGNED INTEGER INT UNSIGNED BIGINT BIGINT UNSIGNED NUMERIC(20) _______________________________________________________ DOUBLE DOUBLE PRECISION REAL FLOAT REAL REAL DECIMAL DECIMAL REAL NUMERIC NUMERIC REAL _______________________________________________________ BOOLEAN …


3
如何将JSON数组转换为Postgres中的行
我在我的postgres数据库中存储了一个json数组。json看起来像这样: [ { "operation": "U", "taxCode": "1000", "description": "iva description", "tax": "12" }, { "operation": "U", "taxCode": "1001", "description": "iva description", "tax": "12" }, { "operation": "U", "taxCode": "1002", "description": "iva description", "tax": "12" } ] 现在,我需要选择数组,以便任何元素都位于查询结果的不同行中。因此,我执行的SELECT语句必须以这种方式返回数据: data -------------------------------------------------------------------------------------- { "operation": "U", "taxCode": "1000", "description": "iva description", "tax":"12"} { "operation": …


11
psql:找不到命令Mac
我通过http://www.postgresql.org/download/macosx/上的图形安装安装了PostgreSQL 。 我在应用程序中看到了它,在应用程序中也有psql终端。我需要psql在常规终端中为另一个正在为应用程序运行的bash脚本工作。 由于某种原因,当我跑步时 psql 在Mac终端中,我的输出是 -bash: psql: command not found 我在终端中运行以下命令: locate psql | grep /bin 和输出是 /Library/PostgreSQL/9.5/bin/psql 然后,我编辑〜/ .bash_profile并将其添加到路径中,如下所示: export PATH = /Library/PostgreSQL/9.5/bin/psql:$PATH 〜/ .bash_profile中唯一的另一件事是SDK man,它位于脚本的底部,正如它应该说的那样。我尝试将浴池设置为/Library/PostgreSQL/9.5/bin/。我也重新启动了终端。 如何使psql工作? 编辑 添加到.bashrc后,当我打开终端时返回此输出 -bash: export: `/Library/PostgreSQL/9.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin': not a valid identifier
77 macos  bash  postgresql  psql 


5
从Now()到Postgresql中的Current_timestamp
在MySQL中,我能够做到这一点: SELECT * FROM table WHERE auth_user.lastactivity > NOW() - 100 现在在PostgreSQL中,我正在使用此查询: SELECT * FROM table WHERE auth_user.lastactivity > CURRENT_TIMESTAMP - 100 但我得到这个错误: operator does not exist: timestamp with time zone - integer 我该如何解决?

2
PostgreSQL临时表
我需要执行250万次查询。该查询生成我需要的一些行,AVG(column)然后使用它AVG从低于平均值的所有值中过滤表。然后,我需要将INSERT这些过滤后的结果放入表格中。 做到这一点的唯一有效方法似乎是通过TEMPORARY TABLE为每个query-postmaster python-thread创建一个。我只是希望这些TEMPORARY TABLEs不会持久保存在硬盘驱动器上,并且会保留在内存(RAM)中,除非它们的内存不足。 我想知道是否TEMPORARY TABLE会引起磁盘写操作(这会干扰INSERTS,即使整个过程变慢)

2
如何使用Postgres中CSV文件中的值更新所选行?
我正在使用Postgres,并想进行一个大型更新查询,该查询将从CSV文件中提取,可以说我有一个表,该表具有(id, banana, apple)。 我想运行一个更新来更改香蕉而不是苹果,每个新的香蕉及其ID都将保存在CSV文件中。 我尝试查看Postgres网站,但这些示例使我丧命。

6
在Postgresql的where子句中使用Alias列
我有这样的查询: SELECT jobs.*, ( CASE WHEN lead_informations.state IS NOT NULL THEN lead_informations.state ELSE 'NEW' END ) AS lead_state FROM jobs LEFT JOIN lead_informations ON lead_informations.job_id = jobs.id AND lead_informations.mechanic_id = 3 WHERE lead_state = 'NEW' 出现以下错误: PGError: ERROR: column "lead_state" does not exist LINE 1: ...s.id AND lead_informations.mechanic_id = 3 …
76 sql  postgresql  alias 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.