Tag: postgresql

创buildPostgreSQL ROLE(用户),如果它不存在

如何编写一个SQL脚本来在PostgreSQL 9.1中创build一个ROLE,但是如果它已经存在则不会引发错误? 目前的脚本只有: CREATE ROLE my_user LOGIN PASSWORD 'my_password'; 如果用户已经存在,则失败。 我想要这样的东西: IF NOT EXISTS (SELECT * FROM pg_user WHERE username = 'my_user') BEGIN CREATE ROLE my_user LOGIN PASSWORD 'my_password'; END; …但这不起作用 – IF似乎不支持在普通的SQL。 我有一个batch file,创build一个PostgreSQL 9.1数据库,angular色和一些其他的东西。 它调用psql.exe,传入一个SQL脚本的名字来运行。 到目前为止,所有这些脚本都是普通的SQL,如果可能的话,我想避免使用PL / pgSQL等。

使用pgAdmin导出和导入表转储(.sql)

我有pgAdmin版本1.16.1 所以,出口表dumm我做: 右键单击表格,然后在菜单中单击backup ,然后在Format choice Plain some_name.sql文件另存为some_name.sql 然后,我删除表。 好吧,现在我需要导入表备份some_name.sql到数据库中。 这个怎么做? 我找不到如何使用pgAdmin将表的.sql转储导入数据库。 你能帮我吗?

PostgreSQL:从另一个表插入

我试图插入数据到另一个表的表中,并且这些表只有一列是相同的。 问题是,TABLE1有不接受空值的列,所以我不能让它们为空,我不能从TABLE2中得到它们。 我有TABLE1:id,col_1(非空),col_2(非空),col_3(非空) 和TABLE2:id,col_a,col_b,col_c 所以我怎样才能从TABLE2插入ID到TABLE1,并填写col_1-3硬编码的string,如“data1”,“data2”,“data3”? INSERT INTO TABLE1 (id) SELECT id FROM TABLE2 WHERE col_a = "something"; 将导致: 错误:列“col_1”中的空值违反了非空约束

如何比较PostgreSQL中date时间字段的date?

比较postgresql中的date(Windows 9.2.4版本)时,我一直面临一个奇怪的情况。 我有一个列在我的表中说update_date与types'timestamp without timezone'。 客户只能在date(即:2013-05-03)或date与时间(即:2013-05-03 12:20:00)search该字段。 此列的值为当前所有行的时间戳,并具有相同的date部分(2013-05-03),但时间部分不同。 当我比较这个专栏时,我得到不同的结果。 如下所示: select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-03' -> No results select * from table where update_date >= '2013-05-03' AND update_date < '2013-05-03' -> No results select * from table where update_date >= '2013-05-03' AND update_date <= '2013-05-04' -> results found […]

angular色不存在,使用PostgreSQL时无法创build数据库

我使用Heroku作为我的应用程序,它需要PostgreSQL,但是你仍然可以使用SQLite3进行开发。 由于Heroku强烈build议不要有2个不同的数据库,我决定改用PostgreSQL进行开发。 我安装了gem pg ,并且去了官方的PostgreSQL站点来获取Windows安装程序,同时也改变了我的database.yml 。 在安装期间,它需要PostgreSQL的密码,所以我做了一个。 我不得不使用md5来更改pg_hba.conf文件,以便获得过去的trust : fe_sendauth: no password supplied尝试创build数据库时fe_sendauth: no password supplied 。 # TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 trust # was md5 # IPv6 local connections: host all all ::1/128 trust # was md5 # Allow replication connections from localhost, by a […]

Heroku Postgres – 终止挂起查询(闲置交易)

我用Crane Postgres选项使用Heroku,当我的本地机器崩溃时,我从本地机器上运行数据库查询。 如果我跑 select * from pg_stat_activity 其中一个条目有 <IDLE> in transaction 在current_query_text列中。 因此,我不能删除被终止的查询写入的表。 我曾尝试使用pg_cancel_backend(N),它返回True,但似乎没有发生。 我怎样才能终止这个过程,以便我可以放弃这个表?

使用Active Record,Rails&Postgres查找具有多个重复字段的行

使用Postgres和Activerecord在多个列中查找具有重复值的logging的最佳方法是什么? 我在这里find这个解决scheme User.find(:all, :group => [:first, :email], :having => "count(*) > 1" ) 但是它似乎不适用于postgres。 我得到这个错误: PG :: GroupingError:错误:列“parts.id”必须出现在GROUP BY子句中或用于聚合函数

只在内存中运行PostgreSQL

我想运行一个只在内存中运行的小型PostgreSQL数据库,用于我编写的每个unit testing。 例如: @Before void setUp() { String port = runPostgresOnRandomPort(); connectTo("postgres://localhost:"+port+"/in_memory_db"); // … } 理想情况下,我将有一个postgres可执行文件签入版本控制,unit testing将使用。 像HSQL ,但对于Postgres。 我怎样才能做到这一点? 我能得到这样一个Postgres版本吗? 我如何指示它不要使用磁盘?

Mac OS X上的PostgreSQL日志在哪里?

我想看看PostgreSQL日志文件,看看我的应用程序写入他们,但我找不到它们。 有任何想法吗?

PostgreSQL进程在“事务中闲置”是什么意思?

PostgreSQL进程在“事务中闲置”是什么意思? 在我正在查看的服务器上,输出“ps ax | grep postgres”,我看到9个PostgreSQL进程,如下所示: postgres: user db 127.0.0.1(55658) idle in transaction 这是否意味着一些stream程被挂起,等待交易被执行? 任何指向相关文档的指针都会被赞赏。