Questions tagged «postgresql»

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


16
插入,在PostgreSQL中重复更新吗?
几个月前,我从关于Stack Overflow的答案中学到了如何使用以下语法在MySQL中一次执行多个更新: INSERT INTO table (id, field, field2) VALUES (1, A, X), (2, B, Y), (3, C, Z) ON DUPLICATE KEY UPDATE field=VALUES(Col1), field2=VALUES(Col2); 我现在已经切换到PostgreSQL,显然这是不正确的。它指的是所有正确的表,因此我认为这是使用不同关键字的问题,但是我不确定在PostgreSQL文档的哪个地方覆盖了这个问题。 为了澄清,我想插入几件事,如果它们已经存在,请对其进行更新。


9
PostgreSQL:文本和varchar之间的区别(字符不同)
text数据类型和character varying(varchar)数据类型有什么区别? 根据文档 如果在不使用长度说明符的情况下使用字符变化,则该类型接受任何大小的字符串。后者是PostgreSQL扩展。 和 另外,PostgreSQL提供了文本类型,该文本类型存储任意长度的字符串。尽管类型文本不在SQL标准中,但其他几种SQL数据库管理系统也具有它。 那有什么区别呢?


10
PostgreSQL自动增量
我正在从MySQL切换到PostgreSQL,想知道如何实现自动增量值。我在PostgreSQL文档中看到了一个数据类型“ serial”,但是在使用它(在v8.0中)时出现语法错误。

12
使用命令行参数运行PostgreSQL .sql文件
我有一些.sql文件,其中包含数千个INSERT语句,并且需要在我的PostgreSQL数据库上运行这些插入内容,以便将它们添加到表中。这些文件太大,无法打开它们并将INSERT语句复制到编辑器窗口中并在其中运行它们。我在Internet上发现可以通过导航到PostgreSQL安装的bin文件夹来使用以下内容: psql -d myDataBase -a -f myInsertFile 就我而言: psql -d HIGHWAYS -a -f CLUSTER_1000M.sql 然后,我被要求为我的用户输入密码,但是我无法输入任何内容,当我按下Enter键时,我得到了这个错误: psql:严重:用户“ myUsername”的密码身份验证失败 为什么不让我输入密码。有没有办法解决这个问题,因为我可以运行这些脚本很关键? 我通过在pg_hba.conf文件中添加具有以下结构的新条目来解决此问题: # IPv6 local connections: host myDbName myUserName ::1/128 trust 通常可以在PostgreSQL安装的'data'文件夹中找到pg_hba.conf文件。


9
如何在PostgreSQL中进行更新+加入?
基本上,我想这样做: update vehicles_vehicle v join shipments_shipment s on v.shipment_id=s.id set v.price=s.price_per_vehicle; 我很确定这可以在MySQL(我的背景)中使用,但似乎在postgres中不起作用。我得到的错误是: ERROR: syntax error at or near "join" LINE 1: update vehicles_vehicle v join shipments_shipment s on v.shi... ^ 当然,有一种简单的方法可以执行此操作,但是我找不到正确的语法。那么,我将如何在PostgreSQL中编写此代码?
506 postgresql  syntax 

6
这个Javascript“要求”是什么?
我正在尝试让Javascript读取/写入PostgreSQL数据库。我在github上找到了这个项目。我能够获得以下示例代码以在节点中运行。 var pg = require('pg'); //native libpq bindings = `var pg = require('pg').native` var conString = "tcp://postgres:1234@localhost/postgres"; var client = new pg.Client(conString); client.connect(); //queries are queued and executed one after another once the connection becomes available client.query("CREATE TEMP TABLE beatles(name varchar(10), height integer, birthday timestamptz)"); client.query("INSERT INTO beatles(name, height, birthday) …


5
安装最新版本的OS X(Yosemite或El Capitan)后缺少pg_tblspc
我在OS X中使用来自自制软件的postgres,但是当我重新启动系统时,有时在重新启动后postgres不会启动,因此我手动尝试用来启动它postgres -D /usr/local/var/postgres,但是随后出现了以下消息,错误FATAL: could not open directory "pg_tblspc": No such file or directory。 上一次发生时,我无法将其恢复为原始状态,因此我决定卸载整个postgres系统,然后重新安装它并创建了用户,表,数据集等。它经常在我的系统上发生,例如几个月一次。 那么为什么它pg_tblspc经常丢失文件?还有什么我可以做的以避免文件丢失的事情? 我尚未将自制软件和postgres升级到最新版本(即,我一直在使用相同的版本)。另外,我在postgres数据库上所做的所有事情都是每天删除表并填充新数据。我尚未更改用户名,密码等... 编辑(mbannert):我觉得有必要添加它,因为线程是该问题在Google上的热门话题,而且许多症状是不同的。自制软件可能会遇到此错误消息: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 因此,如果您是在优胜美地升级后刚刚经历的,现在就可以阅读本主题。

12
将SQL转储导入PostgreSQL数据库
我们正在交换主机,而旧主机提供了我们站点PostgreSQL数据库的SQL转储。 现在,我正在尝试在本地WAMP服务器上进行设置以对此进行测试。 唯一的问题是我不知道如何在已设置的PostgreSQL 9中导入该数据库。 我尝试了pgAdmin III,但似乎找不到“导入”功能。因此,我只是打开了SQL编辑器,并将转储的内容粘贴在那里并执行了它,它创建了表,但是当尝试将数据放入其中时,它总是给我错误。 ERROR: syntax error at or near "t" LINE 474: t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view... The lines: COPY tb_abilities (active, creation, modtime, id, lang, title, description) FROM stdin; t 2011-05-24 16:45:01.768633 2011-05-24 16:45:01.768633 view nl ... 我也尝试通过命令提示符执行此操作,但找不到所需的命令。 如果我做 psql mydatabase < C:/database/db-backup.sql; 我得到错误 ERROR: …

7
在PostgreSQL中插入带单引号的文本
我有一张桌子test(id,name)。 我需要插入值,如: user's log,'my user',customer's。 insert into test values (1,'user's log'); insert into test values (2,''my users''); insert into test values (3,'customer's'); 如果我运行以上任何语句,都会收到错误消息。 如果有任何方法可以正确执行此操作,请分享。我不要任何准备好的陈述。 是否可以使用sql转义机制?

15
Postgresql:用户“ postgres”的密码身份验证失败
我已经安装了PostgreSQL 8.4,Postgres客户端和Pgadmin3。控制台客户端和Pgadmin的用户“ postgres”的身份验证失败。我已经输入了用户“ postgres”和密码“ postgres”,因为它以前可以工作。但是现在身份验证失败。我之前几次都没​​有出现此问题。我该怎么办?那会发生什么呢? psql -U postgres -h localhost -W Password for user postgres: psql: FATAL: password authentication failed for user "postgres" FATAL: password authentication failed for user "postgres"

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.