问题标签 [postgresql-9.5]

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.

0 投票
2 回答
1861 浏览

sql - Postgres 9.5 中的更新插入

试图做一个 upsert 来维护用户第一个最后登录的时间戳和平台。但是新引入的 upsert(冲突时插入)不允许插入选择查询的输出。尝试使用 With 但没有用。新的插入是否支持插入查询的输出并在主键冲突的情况下更新现有字段。以下是使用的查询:

它抛出错误:

使用排除再次给出错误:

错误:错误:列excluded.fdd 不存在

我尝试了以下方法,请在您的最后使用复制,这仍然给出错误:

0 投票
1 回答
842 浏览

postgresql - 两个 PostgreSQL 9.5 beta 2 - 简短的复制 howto

尝试在两个 postgresql 9.5 beta 2 之间配置本机双向(同步)复制。

操作系统 Ubuntu 14.04

谷歌搜索了许多文档和博客,但仍然不明白如何配置 postgresql.conf 以启动双向复制

请提供任何样品。

0 投票
1 回答
752 浏览

sql - 极度减小尺寸后,小表性能缓慢

我有大约 1000 万行的表,id列是primary key.

然后我删除所有行where id > 10。表中只剩下 10 行。

现在,当我运行查询时SELECT id FROM tablename,执行时间大约为 1.2 - 1.5 秒。
SELECT id FROM tablename where id = x只需要 10 - 11 毫秒。

为什么SELECT只有 10 行的第一个这么慢?

0 投票
1 回答
47 浏览

arrays - 在 Postgres 数组中排序有多可靠?

我有store表:

例如:

也就是说,ID为商品的价格为,商品ID12100的商品价格4202.5product_ids数组中的ID是唯一的。

例如,如果产品id=4有新价格,199我会这样更新:

这些数组中元素的顺序非常重要。我从不对这些数组进行排序,也许只是添加一个新的 product_id 和适当的价格,使用array_append().

所以问题是:Postgres 数组中的排序有多可靠?Postgres 是否有可能有一天会对数组或交换元素位置进行排序?

PS我需要用数组来做这个,我不想使用其他带有列的表store_idproduct_id等等product_price

0 投票
3 回答
2627 浏览

sql - FALSE 和 TRUE 与 NULL 和 TRUE

我有类型的列BOOLEAN

起初(on INSERT),值将始终为FALSE,只有在之后才可以将列更新为TRUE

所以问题是:制作这个列NOT NULL DEFAULT FALSE,或者制作这个列DEFAULT NULL然后更新为TRUE(如果那时也将反转更新,设置列NULL而不是FALSE值,所以在这种情况下,永远不会使用FALSE值)

从性能和存储节省的角度来看,哪个选择会更好?

0 投票
1 回答
4836 浏览

postgresql - PostgreSQL 9.5 - 行级安全/ROLE 最佳实践

我想掌握在支持 Web 应用程序的多租户数据库中使用新行级安全功能的最佳方法。

目前,该应用程序有几个不同的可用角色,具体取决于它尝试采取的操作。

一旦应用程序使用自己的 ROLE 建立连接,应用程序就会将身份验证参数(由用户提供)传递到不同的函数中,这些函数会根据用户提供的身份验证参数过滤掉行。该系统旨在与成千上万的用户一起使用,并且似乎可以正常工作;然而,它显然很笨重(而且很慢)。

似乎如果我想使用新的行级安全功能,我需要为每个真实世界的用户(不仅仅是 Web 应用程序)创建一个新的角色来访问数据库。

这个对吗?如果是这样,在数据库中创建数千个角色是个好主意吗?


从评论中的a_horse_with_no_name链接更新(感谢,该线程是正确的):

现在,我很困惑,current_setting('app_name.app_user')因为我的印象是这只适用于配置参数......在哪里app_name定义?

0 投票
0 回答
2150 浏览

windows - Windows 上的 Lazarus:无法加载 PostgreSQL 客户端库“libpq.dll”

无法加载 PostgreSQL 客户端库“libpq.dll”检查您的安装

我只是一个普通的程序员(我猜),我完全是 PostgreSQL 和 lazarus 的新手。我正在为我们的学校组织重新创建一个使用数据库的 Intership 中学到的小项目,因此我正在阅读如何将 PostgreSQL 数据库连接到 lazarus 应用程序的教程。不幸的是,我在学习教程时遇到了这个错误。Lazarus 无法加载 PostgreSQL 客户端库“libpq.dll”。我已经在网上搜索了如何像这篇文章一样修复它,但无济于事。我在程序文件中检查了 PostgreSQL 的 lib 文件夹,没有任何问题,libpq.dll 在那里。有谁知道如何解决这个问题?

0 投票
4 回答
6318 浏览

postgresql - 如何确定 upsert 是否是 PostgreSQL 9.5+ UPSERT 的更新?

可写 CTE 被认为是 9.5 之前的 UPSERT 解决方案,如插入中所述,关于 PostgreSQL 中的重复更新?

可以使用以下信息执行 UPSERT,无论它最终是 UPDATE 还是 INSERT,具有以下可写 CTE 习语:

此查询将返回“更新”或“插入”,或者可能(很少)因违反约束而失败,如https://dba.stackexchange.com/questions/78510/why-is-cte-open-to中所述-丢失更新

是否可以使用 PostgreSQL 9.5+ 新的“UPSERT”语法来实现类似的东西,受益于其优化并避免可能的约束违规?

0 投票
1 回答
1867 浏览

postgresql - 从另一个 PL/Python 块调用 postgres PL/Python 存储函数

是否可以从其他 PL/Python 块调用 PL/Python 函数作为普通 Python 函数。

例如,我有一个函数 f1:

我想从其他函数或块调用这个函数,例如这个匿名块:

这可以使用 来完成t = plpy.execute("select f1()"),但如果可能的话,我希望将其作为普通 Python 函数调用以避免类型转换(例如 jsonb 等)。

(我正在使用 plpython3u ~ Python 3)。

0 投票
2 回答
3903 浏览

c# - Postgresql odbc driver error c# [IM002] [Microsoft][ODBC Driver Manager] Data source name not found

我正在将数据库应用程序设置为与数据库无关,并且在使用 postgresql 进行测试时出现标准 dsn 错误:

[IM002] [Microsoft][ODBC Driver Manager] 未找到数据源名称

我通常使用 SQL server 和 MySQL,所以我是 postgres 的新手,我尝试了标准推荐的连接字符串:

我还尝试了安装 postrgesql 后安装的 odbc 驱动程序的名称:

在 odbc 管理器中设置 DSN 也可以完美地使用 unicode 驱动程序,所以我无法理解为什么我无法在我的应用程序中连接,我在连接字符串中使用的驱动程序名称是否有错误?