Questions tagged «postgresql»

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

3
如何检查给定架构中是否存在表
Postgres 8.4和更高版本的数据库包含public架构中的通用表和架构中的公司特定表company。 company模式名称始终'company'以公司编号开头和结尾。 因此,可能会有类似以下的模式: public company1 company2 company3 ... companynn 应用程序始终与单个公司一起使用。 的search_path相应指定在ODBC或连接Npgsql的字符串,如: search_path='company3,public' 您如何检查指定表中是否存在给定表companyn? 例如: select isSpecific('company3','tablenotincompany3schema') 应该返回false,并且 select isSpecific('company3','tableincompany3schema') 应该回来true。 无论如何,该函数应仅检查companyn传递的架构,而不检查其他架构。 如果给定的表public和传递的模式中都存在一个表,则该函数应返回true。 它应该适用于Postgres 8.4或更高版本。

2
如何在Postgres / SQL中获得两个整数的最小值/最大值?
如何在Postgres / SQL中找到两个整数的最大值(或最小值)?整数之一不是列值。 我将给出一个示例方案: 我想从一列(所有行)中减去一个整数,但结果不应小于零。因此,首先,我有: UPDATE my_table SET my_column = my_column - 10; 但这会使某些值变为负值。我想要的(用伪代码)是: UPDATE my_table SET my_column = MAXIMUM(my_column - 10, 0);
147 postgresql 


5
PostgreSQL:使用多个数据库,每个数据库有一个模式,还是一个数据库有多个模式,更好?
在对我的问题之一发表评论之后,我在考虑使用具有X模式的数据库是否更好,反之亦然。 我的情况:我正在开发一个Web应用程序,当人们注册时,我会创建(实际上)一个数据库(不,它不是社交网络:每个人都必须有权访问自己的数据,而从不查看其他用户的数据) 。 这就是我以前的应用程序版本(仍在MySQL上运行)所使用的方式:通过Plesk API,对于每次注册,我都这样做: 创建具有有限权限的数据库用户; 创建一个只能由先前创建的用户和超级用户访问的数据库(用于维护) 填充数据库 现在,我需要对PostgreSQL做同样的事情(该项目正在日趋成熟,而MySQL ...不能满足所有需求)。 我需要使所有数据库/方案备份独立:pg_dump可以在两种方式下完美运行,并且对于可以配置为仅访问一个模式或一个数据库的用户而言,pg_dump可以完美地工作。 因此,假设您比我更有经验的PostgreSQL用户,那么您认为什么是对我而言最好的解决方案,为什么? 使用$ x数据库而不是$ x模式会有性能差异吗?哪种解决方案将来会更好维护(可靠性)? 我所有的数据库/方案都将始终具有相同的结构! 对于备份问题(使用pg_dump),最好使用一个数据库和多个模式,一次转储所有模式:恢复将非常简单,将主转储加载到开发计算机中,然后仅转储和还原所需的模式:是另外一个步骤,但是转储所有模式似乎比逐个转储它们要快。 2012年更新 好吧,在过去的两年中,应用程序的结构和设计发生了很大的变化。我仍在使用该one db with many schemas方法,但是仍然为我的应用程序的每个版本提供一个数据库: Db myapp_01 \_ my_customer_foo_schema \_ my_customer_bar_schema Db myapp_02 \_ my_customer_foo_schema \_ my_customer_bar_schema 对于备份,我会定期转储每个数据库,然后将备份移至开发服务器上。 我也在使用PITR / WAL备份,但是,正如我之前说过的那样,我不太可能必须立即还原所有数据库 ...因此它可能会在今年被淘汰(在我看来,这不是最好的方法) )。 从现在开始,即使应用程序结构已完全更改,“单db-多次模式”方法对我来说也非常有效: 我几乎忘记了:我所有的数据库/方案都将始终具有相同的结构! ...现在,每个模式都有其自己的结构,该结构可动态响应用户数据流。

18
使用SQL列出Postgres db 8.1中的所有序列
我正在将数据库从postgres转换为mysql。 由于我找不到能自行解决问题的工具,因此我将使用autoincrement值将所有postgres序列转换为mysql中的autoincrement id。 因此,如何在Postgres DB(8.1版)中列出所有序列,以及有关使用该表的信息,下一个值等信息(通过SQL查询)? 请注意,我无法使用information_schema.sequences8.4版本中的视图。

16
找不到PostgreSQL客户端库(libpq)
我正在尝试在Mac OS X 10.6上安装PostgreSQL for Rails。首先,我尝试了MacPorts安装,但是运行不顺利,所以我做了一键式DMG安装。这似乎可行。 我怀疑我需要安装PostgreSQL开发软件包,但是我不知道如何在OS X上进行安装。 这是我尝试做时得到的sudo gem install pg: $ sudo gem install pg Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb checking for pg_config... yes Using config values from /Library/PostgreSQL/8.3/bin/pg_config checking for libpq-fe.h... …

6
PostgreSQL禁用更多输出
我在PostgreSQL服务器上运行脚本: psql db -f sql.sql 从bash或在cron脚本中。 它一直尝试使用more或分页输出less。 如何在中禁用结果分页psql? 我要做的就是更改数据,我不在乎任何输出。
146 postgresql 

4
LATERAL和PostgreSQL中的子查询有什么区别?
由于Postgres具有LATERAL连接的能力,因此我一直在阅读,因为我目前为团队执行复杂的数据转储,其中包含许多效率低下的子查询,使得整个查询需要四分钟或更长时间。 我知道LATERAL联接可能会为我提供帮助,但是即使阅读了Heap Analytics中的此类文章,我仍然不太了解。 联接的用例是LATERAL什么?LATERAL联接和子查询之间有什么区别?



8
奇怪的SQLAlchemy错误消息:TypeError:'dict'对象不支持索引
我正在使用手工SQL,使用SqlAlchemy从PG数据库中获取数据。我正在尝试一个查询,其中包含类似运算符'%'的SQL,并且该查询似乎通过循环抛出SqlAlcjhemy: sql = """ SELECT DISTINCT u.name from user u INNER JOIN city c ON u.city_id = c.id WHERE c.designation=upper('fantasy') AND c.id IN (select id from ref_geog where short_name LIKE '%opt') """ # The last line in the above statement throws the error mentioned in the title. # However if …

2
如何在PostgreSQL中删除多列
我想在PostgreSQL的表中删除200列。我试过了: ALTER TABLE my_table DROP COLUMN col1, col2 但我收到这样的错误: 错误:“ col2”或附近的语法错误
144 postgresql 

3
PostgreSQL可以索引数组列吗?
我在文档中找不到这个问题的明确答案。如果列是数组类型,是否将对所有输入的值分别进行索引? 我创建了一个只有一int[]列的简单表,并在其上添加了唯一索引。我注意到我无法添加相同的int数组,这使我相信索引是数组项的组合,而不是每个项的索引。 INSERT INTO "Test"."Test" VALUES ('{10, 15, 20}'); INSERT INTO "Test"."Test" VALUES ('{10, 20, 30}'); SELECT * FROM "Test"."Test" WHERE 20 = ANY ("Column1"); 索引对这个查询有帮助吗?

8
可以使用PostgreSQL执行跨数据库查询吗?
我将基于以下错误消息(以及此Google结果)猜测答案为“否” ,但是是否仍然可以使用PostgreSQL执行跨数据库查询? databaseA=# select * from databaseB.public.someTableName; ERROR: cross-database references are not implemented: "databaseB.public.someTableName" 我正在处理一些分布在两个数据库中的数据,尽管数据实际上是在两个数据库之间共享的(一个数据库中的userid列来自另一个数据库中的users表)。我不知道为什么这些是两个独立的数据库而不是模式,但是请放心...
143 sql  postgresql 

8
Rails:致命-用户的对等身份验证失败(PG :: Error)
我正在Ubuntu 11.10和RubyMine上运行开发 这是我对database.yml的开发设置:RubyMine为我创建的 development: adapter: postgresql encoding: unicode database: mydb_development pool: 5 username: myuser password: 当我尝试运行该应用程序时,出现以下错误,似乎我还没有创建“项目”用户,但是,如何在postgres中创建用户并为其授予数据库?如果这是问题所在,那么在Ubuntu中为此任务推荐使用什么工具?如果这不是问题,那么请提出建议。 Exiting /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `initialize': FATAL: Peer authentication failed for user "project" (PG::Error) from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `new' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:1194:in `connect' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:329:in `initialize' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `new' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/postgresql_adapter.rb:28:in `postgresql_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:303:in `new_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:313:in `checkout_new_connection' from /home/sam/.rvm/gems/ruby-1.9.3-p0@project/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:237:in …

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.