我使用 PostgreSQL 9.2,我没有在任何地方使用显式锁定,LOCK语句和SELECT ... FOR UPDATE. 然而,最近我得到了ERROR: 40P01: deadlock detected. 但是,检测到死锁的查询包含在事务块中。无论如何,它是怎么来的?
是否有程序可以根据以下要求创建每日 MySQL、PostgreSQL 和 MariaDB 备份:
仅使用某些软件或脚本,而不是 PHP。
我今天刚刚在 Mac(Mountain Lion)上安装了 PostgreSQL。
安装程序在我的机器上创建了一个 mac 用户 PostgreSQL。安装后,用户仍然存在。
我的问题是为什么 postgreSQL 需要一个新用户?我可以删除这个用户吗?MySQL 服务器不需要创建这样的用户。
有人可以帮忙吗?
我在 PostgreSQL 9.2 中有一个表,它记录名为 user_login_session 的登录会话。该表包含 user_id、start_timestamp 和 end_timestamp 列等。随着我的系统越来越受欢迎,这张表已经开始增长,我现在无法清除旧记录。
我已经在这个表上定义了一个索引,但我担心它会随着时间的推移而增长。是否可以定义一个索引,它只保留每个用户 ID 的最新登录会话行的句柄?较旧的行不会在操作上访问。
我们有一个中等大小的 postgres 9.1 db,目前为 3TB,并且在未来几年内可能会变得更大。我们需要一个可靠且快速的解决方案来将这些数据移动到 oracle 11G 或 sql server 2012 数据库中。我们需要一个基于日志的解决方案,如复制或 CDC,具有最小的 postgres 服务器占用空间,而不是寻找基于代码的 ETL 解决方案,如 SSIS 或 SAP 数据服务。
它还应该能够有效地处理存储在 postgres 中的 blob/空间数据
我有一个包含以下列的表:
现在我将执行这个查询:
select sum(debit - credit), payment_method, class
from my_table
group by payment_method, class
Run Code Online (Sandbox Code Playgroud)
而且由于我有各种付款方式和各种类,因此我将有几行结果集。
现在,我希望能够汇总此结果并仅按类对输出进行分组,例如对于001我想要的某个类:
payment_method1, sumofpayment_method1, payment_method2, sumofpayment_method2, payment_method3, sumofpayment_method3在一行中。
在 Postgres 9.1 中有可能吗?
更新:
表定义如下:-
我想从基于多行 DISTINCT 的 SELECT 语句创建一个表,但 PostgreSQL 不允许我这样做。
我需要创建一个表格,其中的元素之前是从另一个表格中选择的,并且它们都是唯一的。
这是我的尝试:
CREATE TABLE new_name AS (
SELECT DISTINCT(table.field1, table.field2), table.field1, table.field2,
FROM ...
WHERE ...
);
Run Code Online (Sandbox Code Playgroud)
如果我运行这个语句,PostgreSQL 会说:
错误:列“行”具有伪类型记录
我怎么能解决这个问题?
由于诸如 PostgreSQL(和 PostGIS)之类的重量级数据库的安全功能,我最大的恐惧之一是被锁定在我自己的数据之外。虽然我可以以管理员身份登录,但我想正确地做事并创建具有定义角色的用户。不幸的是,在我的初步测试中,我从未能够让它可靠地工作。我显然不理解 pgAdmin III 管理的 PostgreSQL 安全模型。
问题:
在 ms-access 中,如果创建了一个名为 'ted' 的用户并提供了密码,然后被删除,然后重新创建了一个名为 'ted' 的用户。第一个 ted 和第二个 ted 不一样。除了可见名称之外,还有一个隐藏的唯一代码,每次创建用户时都会生成该代码。这使得无法重新创建已删除的用户。我只是想知道 PostgreSQL 是否有这样的隐藏逻辑,可以欺骗新用户。
我遇到的关键问题是,当我通过 PgAdmin III 为特定数据库上的用户定义权限时,我无法使用 QGIS 中的用户名和密码连接到数据库。
目前,我正在使用 SpatialLite 来避免这个问题。
我有许多表,都包含属性aid,bid,cid和xid整数类型,其他属性可能不同。对于每个(给定)表T,我想根据aid,bid,cid升序和更新列对行进行排序xid,增量值从 0 开始。实现这一目标的最佳方法是什么?
我目前的解决方案包括:
TxidT_tempTT_temp到T由于这些表具有不同的模式,我编写了一半代码PL/pgSQL,一半代码使用 bash 脚本编写。
问题 1:任何评论如何让它在纯 PL/pgSQL 中编程?
问题 2:任何评论如何更优雅地实现?
我有一个 PostgreSQL 9.3 数据库,带有支持 Web 应用程序和 GeoServer 的 PostGIS 扩展。我创建了三个用户。
用于访问参考数据模式中的数据的只读用户。
用于访问和更新保存应用程序状态的架构中的数据的读/写用户。
GeoServer 正在访问的地图数据的读/写/创建用户。
前两个工作正常。第三个我有问题。以用户 GeoServer 身份登录可以创建新表就好了。但随后无法读取它们。我必须专门进入并手动应用权限。这对于应用程序来说是站不住脚的。用户可以创建一个他们无法读取的表对我来说没有多大意义。所以我认为我错过了一个不明显的权限设置。我的谷歌搜索让我得到了大量关于设置只读用户的奇怪说明,但不是为了这个。
postgresql ×10
backup ×1
deadlock ×1
mariadb ×1
mysql ×1
permissions ×1
replication ×1
scripting ×1
select ×1
transaction ×1
update ×1