Questions tagged «postgresql»

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

6
使用子查询更新postgres中的表行
使用postgres 8.4,我的目标是更新现有表: CREATE TABLE public.dummy ( address_id SERIAL, addr1 character(40), addr2 character(40), city character(25), state character(2), zip character(5), customer boolean, supplier boolean, partner boolean ) WITH ( OIDS=FALSE ); 最初我使用插入语句测试了我的查询: insert into address customer,supplier,partner SELECT case when cust.addr1 is not null then TRUE else FALSE end customer, case when suppl.addr1 …

14
如何将密码传递给pg_dump?
我正在尝试创建一个cronjob来每晚在灾难性事件发生之前备份我的数据库。看起来此命令应该可以满足我的需求: 0 3 * * * pg_dump dbname | gzip > ~/backup/db/$(date +%Y-%m-%d).psql.gz 除了运行之后,它希望我输入密码。如果我从cron运行它,我将无法做到这一点。如何自动传递一个?

21
使用命令行还原Postgres备份文件?
我是Postgresql的新手,在本地,我使用pgadmin3。但是,在远程服务器上,我没有那么奢侈。 我已经创建了数据库的备份并将其复制,但是,有没有办法从命令行恢复备份?我只看到与GUI或pg_dumps相关的内容,因此,如果有人可以告诉我该怎么做,那就太好了!

18
如何在Ubuntu上安装PostgreSQL的pg gem?
我正在尝试为Ruby安装PostgreSQL的pg gem。 我发出了以下命令: gem install pg 我使用RVM安装了Ruby 1.9.2。 上面的命令向我显示了以下错误。 错误是: Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /home/User/.rvm/rubies/ruby-1.9.2-preview3/bin/ruby extconf.rb checking for pg_config... yes checking for libpq-fe.h... yes checking for libpq/libpq-fs.h... yes checking for PQconnectdb() in -lpq... no checking …
292 ruby  postgresql  pg 

8
SQL varchar列长度的最佳做法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 4个月前关闭。 改善这个问题 每次设置新的SQL表或varchar向现有表添加新列时,我都想知道一件事:的最佳价值是什么length。 假设您有一个名为nametype 的列varchar。因此,您必须选择长度。我想不出一个名称> 20个字符,但您永远不会知道。但是我总是使用四舍五入到下一个2 ^ n数字,而不是使用20。在这种情况下,我将选择32作为长度。我这样做是因为从计算机科学家的角度来看,数字2 ^ n even在我看来比其他数字要多,而我只是假设下面的体系结构可以更好地处理这些数字。 另一方面,例如,当您选择创建varchar列时,MSSQL服务器会将默认长度值设置为50。那让我开始思考。为什么是50?只是一个随机数,还是基于平均列长,还是什么? 不同的SQL Server实现(例如MySQL,MSSQL,Postgres等)也可能具有(也可能是)不同的最佳列长值。



24
如何将数据库置于git(版本控制)下?
我正在做一个Web应用程序,我需要对一些主要更改进行分支,事实是,这些更改需要更改数据库架构,因此我也希望将整个数据库也置于git下。 我怎么做?我可以在git资料库中保留一个特定的文件夹吗?我怎么知道哪一个?如何确定要放入正确的文件夹? 我需要确定,因为这些更改不是向后兼容的。我无力承担。 我的数据库是PostgreSQL 编辑: 有人建议进行备份,并将备份文件而不是数据库置于版本控制之下。老实说,我很难吞咽。 一定有更好的方法。 更新: 好的,因此没有更好的方法,但是我仍然不太确定,因此我将稍微改变一下问题: 我想将整个数据库置于版本控制下,我可以使用哪个数据库引擎,以便可以将实际数据库置于版本控制下而不是其转储? sqlite是git友好的吗? 由于这只是开发环境,因此我可以选择所需的任何数据库。 编辑2: 我真正想要的不是跟踪我的开发历史,而是能够从我的“新的根本性变化”分支切换到“当前稳定的分支”,并能够例如使用当前版本修复一些错误/问题等。稳定分支。这样,当我切换分支时,数据库会自动与我当前所在的分支兼容。我不太在乎实际数据。



6
如何在PostgreSQL中进行UPSERT(MERGE,INSERT…ON DUPLICATE UPDATE)?
这里一个非常常见的问题是如何进行upsert,这是MySQL调用的内容,INSERT ... ON DUPLICATE UPDATE并且该标准支持该MERGE操作。 鉴于PostgreSQL不直接支持它(在9.5版之前),您该怎么做?考虑以下: CREATE TABLE testtable ( id integer PRIMARY KEY, somedata text NOT NULL ); INSERT INTO testtable (id, somedata) VALUES (1, 'fred'), (2, 'bob'); 现在,假设你想“UPSERT”的元组(2, 'Joe'),(3, 'Alan'),因此新表的内容是: (1, 'fred'), (2, 'Joe'), -- Changed value of existing tuple (3, 'Alan') -- Added new tuple 那就是人们在讨论时谈论的话题upsert。至关重要的是,在存在多个事务处理同一个表的情况下,任何方法都必须安全 -通过使用显式锁定或以其他方式抵御由此产生的竞争条件。 …

7
如何在PostgreSQL中设置自动递增主键?
我在PostgreSQL中有一个具有22列的表,并且我想添加一个自动增量主键。 我试图创建一个名为idBIGSERIAL类型的列,但是pgadmin响应了一个错误: ERROR: sequence must have same owner as table it is linked to. 有人知道如何解决此问题吗?如何在PostgreSQL中添加创建自动递增主键而又不重新创建表的方法?
259 sql  postgresql 




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.