Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

3
如何仅在psql中关闭标头(PostgreSQL)
我正在使用PostgreSQL 9.1.X 我正在尝试构建psql脚本以打印不带页眉但包含页脚的结果。 http://www.postgresql.org/docs/9.1/static/app-psql.html 从上面的文件 \pset tuples_only 将同时关闭页眉和页脚。和 \pset footer off 将仅关闭页脚。 有没有办法psql关闭页眉并保持页脚打开? 我知道有很多方法可以使用shell / perl /任何您喜欢的文本工具来解决此问题,但是我想知道为什么页脚有一个配置,但页眉没有一个? id <--this line I don't want ---- <-- this line I don't want either 1 <-- this line, yes (1 row) <-- yes, I want it!
18 postgresql  psql 


2
pg_restore:[存档(db)]无法执行查询:错误:模式“ public”已经存在
我正在使用pg_dump / pg_restore备份和还原PostgreSQL数据库,但是从pg_restore收到一些错误消息(以及非零退出状态)。我尝试了一个超级简单的基本案例(下面概述),但仍然出现以下错误: pg_restore:[存档(db)]处理目录时出错: pg_restore:[archiver(db)]来自TOC条目5的错误;2615 2200 SCHEMA公共邮递区号 pg_restore:[存档(db)]无法执行查询:错误:模式“ public”已经存在 命令是:CREATE SCHEMA public; 重现步骤: 安装一个新的原始Ubuntu 14.04发行版(我正在将Vagrant与该Vagrant框一起使用)。 安装PostgreSQL 9.3,配置为允许来自任何Linux用户的PostgreSQL用户“ postgres”本地连接。 创建一个测试数据库。我只是在做: vagrant @ vagrant-ubuntu-trusty-64:〜$ psql --username = postgres postgres psql(9.3.5) 键入“帮助”以获得帮助。 postgres =#创建数据库mydb; 创建数据库 postgres =#\ q vagrant @ vagrant-ubuntu-trusty-64:〜$ psql --username = postgres mydb psql(9.3.5) 键入“帮助”以获得帮助。 mydb =#创建表数据(entry bigint); 创建表 mydb …

2
尝试导入的文件中的权限被拒绝
当我尝试使用\i不在psql.exe文件夹中的文件时,显示C:: permission denied。例如,我有一个带有SQL命令的文件,在C:\Users\Work\Desktop\School Work\load_database.sql键入\i "C:\Users\Work\Desktop\School Work\load_database.sql"时说C:: permission denied。我怎样才能解决这个问题? 我在这里找到了解决方法,将.sql文件复制到与psql.exe所在的文件夹中。 顺便说一句,\ i代表进口吗?

1
PostgreSQL JSON查询数组针对多个值
我想针对jsonbPostgres 中的类型编写查询,因为给定的客户ID数组将找到对应的组。 给定此示例表: CREATE TABLE grp(d JSONB NOT NULL); INSERT INTO grp VALUES ('{"name":"First","arr":["foo"], "customers":[{"id":"1", "name":"one"},{"id":"2", "name":"two"}]}') , ('{"name":"Second","arr":["foo","bar"], "customers":[{"id":"3", "name":"three"},{"id":"4", "name":"four"}]}') , ('{"name":"Third","arr":["bar","baz"], "customers":[{"id":"5", "name":"five"},{"id":"6", "name":"seven"}]}'); 我发现了类似的问题(针对多个值的PostgreSql JSONB SELECT),并使用此查询设法在简单数组上实现了我想要的功能: SELECT d FROM grp WHERE d->'arr' ?| ARRAY['foo', 'bar']; 但是,当数组包含JSON 对象时,我无法使其工作: SELECT d FROM grp WHERE d->'customers' ?| ARRAY['{"id":"1"}', '{"id":"5"}']; …

4
交易中的交易
如果例如以下脚本被调用,PostgreSQL将显示什么行为? BEGIN; SELECT * FROM foo; INSERT INTO foo(name) VALUES ('bar'); BEGIN; <- The point of interest END; PostgreSQL会放弃第二个BEGIN还是会隐式地决定提交,然后BEGIN END作为单独的事务最后运行该块?

2
Postgres侦听/通知为消息队列
有什么方法可以使用Postgres侦听/通知功能将消息传递到通道,并且只有一个侦听器使用此消息吗? 这样做的目的是让我有多个“工作者”应用程序都在收听同一个Postgres频道。但是我只希望每个通过通知渠道收到的消息都完成一次工作。 如果“听/通知”不是Postgres中的正确功能,是否应该使用其他功能? 理想情况下,我希望不使用任何其他扩展名即可执行此操作。

1
什么限制了连接数量?
根据https://devcenter.heroku.com/articles/heroku-postgres-legacy-plans,连接限制为500 按照https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server的说法: “通常,良好硬件上的PostgreSQL可以支持数百个连接” 此限制的决定因素是什么?#CPU核心?内存?操作系统?

1
有一个psql等效于bash的反向搜索历史吗?
我非常喜欢bash的反向搜索历史记录(Cr)(命令行功能): 从当前行开始向后搜索,并根据需要在历史记录中向上移动。这是一个增量搜索。 按下control-r时bash,我得到以下信息: (reverse-i-search)`': 而且,我可以键入以前执行的命令的字符,并根据需要查找内容。如果输入有误,我可以输入control-h以删除一个字符(等于backspace)。 此命令行功能使引用以前执行的命令变得非常容易。我想知道是否存在这样的能力psql。我发现依靠正义control-p和正义是极其低效的control-n。 对于它的价值,我正在使用PostgreSQL 9.3.1 on x86_64-apple-darwin13.0.0, compiled by Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn), 64-bit-通过Postgres.app获得。

1
从Amazon RDS获取Postgres快照
我找不到一种简单的方法来获取我的Amazon RDS postgres实例进行的夜间备份的副本,因此可以将其还原到本地计算机上以供使用。 现在,当我需要一个副本时,我正在执行pg_dump,但是能够下载这些快照会更好(并且可能更快)。这不可能吗?

2
为什么会有PostgreSQL Turtle?
我刚刚查看了PostgreSQL的宣传页,发现了这一小技巧: 这是“ Turtle Style” PostgreSQL徽标。这是几岁了,PostgreSQL曾经正式使用乌龟代替大象吗?这是什么故事?
17 postgresql 

3
有没有办法在postgres中访问其他会话的临时表?
我正在使用Windows应用程序,该应用程序使用(本地)postgres数据库并将一些信息存储在临时表中。我想看一下临时表,但是pgadmin和dbVis告诉我:ERROR: cannot access temporary tables of other sessions尝试查询数据时。我尝试更改模式和表的权限,但这似乎无济于事,即使我使用与程序本身相同的用户访问数据库(至少在dbVis中也是如此)。我是否可以在数据库中更改设置,以使我能够“ root”访问数据库中的所有会话?

1
PostgreSQL如何在启用WAL的备份中间处理检查点?
在PostgreSQL v9.0上,我正在使用WAL归档系统。因此,WAL会定期存档(创建3个WAL或WAL早于15分钟时)。 现在,我添加了PG_DATA目录的二进制压缩包(不包括pg_xlog子目录)。为此,我执行一个pg_start_backup(),二进制副本和一个pg_stop_backup()。 我想我很了解pg_start_backup和pg_stop_backup在做什么,第一个做一个检查点,最后一个确保最后一个WAL文件被存档。 从官方文档中我们可以看到,对于二进制数据副本,我们应该: 使用任何方便的文件系统备份工具(例如tar或cpio(而不是pg_dump或pg_dumpall))执行备份。在执行此操作时,既没有必要也不希望停止数据库的正常运行。 所以我很困惑。这意味着在我们复制时可以执行检查点。我看到了很多文档,说明执行复制时copy命令应该允许更改数据,我很确定,只是找到合适的工具。但是我的问题是postgreSQL将如何使用包含某些不一致文件的pg_data内容来处理恢复(某些来自检查点之前,某些来自之后)? 通过重播事务日志,PostgreSQL可以将所有这些文件置于正确的状态吗?我看到执行备份时创建表和删除操作很危险,不存在诸如真空之类的危险操作命令之吗?pg_backup是否暂停真空操作?我是否应该在二进制复制过程开始的最后复制global / pg_control文件?我是否应该使用启用了快照的文件系统(如xfs-freeze)来加快恢复过程? 我看到备份脚本崩溃不会自动启动pg_stop_backup,所以我的备份状态可能存在很长一段时间(直到我的nagios环某人修复pg_stop_backup()为止)。因此,如果这两个命令在PostgreSQL中有什么不同,我想知道,以了解它可能产生的影响。 请赐教。

4
当源数据库以UTF8编码时,如何解决还原时UTF8无效字节序列复制错误?
我获得了将PostgreSQL 8.2.x数据库迁移到另一台服务器的任务。为此,我使用的是pgAdmin 1.12.2(顺便说一句在Ubuntu 11.04上),并使用通过自定义/压缩格式(.backup)和UTF8编码进行的备份和还原。 原始数据库位于UTF8中,如下所示: -- Database: favela -- DROP DATABASE favela; CREATE DATABASE favela WITH OWNER = favela ENCODING = 'UTF8' TABLESPACE = favela CONNECTION LIMIT = -1; 我正在目标服务器上完全像这样创建此数据库。但是,当我使用Restore选项从.backup文件还原数据库时,它给了我一些错误: pg_restore: restoring data for table "arena" pg_restore: [archiver (db)] Error while PROCESSING TOC: pg_restore: [archiver (db)] Error from TOC entry …


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.