Tag: postgresql

PostgreSQL增量备份的最佳方法

我目前使用pg_dumppipe道通过gzippipe道来split 。 但是这个问题是所有的输出文件总是被改变。 所以基于校验和的备份总是复制所有的数据。 是否还有其他好的方法来执行PostgreSQL数据库的增量备份,其中可以从备份数据中恢复完整的数据库? 例如,如果pg_dump可以使所有的东西都是绝对有序的,那么所有的改变只能在转储结束时或类似的地方应用。

如何修改PostgreSQL数据库表中列的位置?

我已经尝试了以下,但我没有成功: ALTER TABLE person ALTER COLUMN dob POSITION 37;

什么GRANT使用SCHEMA准确地做?

我试图创build一个Postgres数据库,所以这可能是一个愚蠢的问题。 我分配了基本的只读权限的数据库angular色,必须从我的PHP脚本访问数据库,我有一个好奇心:如果我执行 GRANT some_or_all_privileges ON ALL TABLES IN SCHEMA schema TO role; 有没有需要执行也 GRANT USAGE ON SCHEMA schema TO role; ? 从文档 : 用法:对于模式,允许访问包含在指定模式中的对象(假设对象自己的特权要求也被满足)。 本质上这允许被授权者在模式中“查找”对象。 我认为,如果我可以select或操纵模式中包含的任何数据,我可以访问模式本身的任何对象。 我错了吗? 如果不是,那么GRANT USAGE ON SCHEMA上使用哪些GRANT USAGE ON SCHEMA ? 那么这个文档究竟意味着什么呢?“假设对象本身的特权要求也得到了满足”?

什么是导致错误:没有唯一的约束匹配给定的键为参考表?

下面的示例表结构给出了一个错误:没有唯一的约束匹配给定的键的引用表,并盯着它,现在我不明白为什么这个错误出现在这种情况下。 BEGIN; CREATE TABLE foo ( name VARCHAR(256) PRIMARY KEY ); CREATE TABLE bar( pkey SERIAL PRIMARY KEY, foo_fk VARCHAR(256) NOT NULL REFERENCES foo(name), name VARCHAR(256) NOT NULL, UNIQUE (foo_fk,name) ); CREATE TABLE baz( pkey SERIAL PRIMARY KEY, bar_fk VARCHAR(256) NOT NULL REFERENCES bar(name), name VARCHAR(256) ); COMMIT; 运行上面的代码给出了下面的错误,这对我来说是没有意义的,任何人都可以解释为什么会出现这个错误。 我正在使用postgres 9.1 NOTICE: CREATE TABLE / […]

消除postgres中重复的数组值

我有一个biginttypes的数组,我该如何删除该数组中的重复值? 例如: array[1234, 5343, 6353, 1234, 1234] 我应该得到array[1234, 5343, 6353, …] 我testing了在postgres手册中的示例SELECT uniq(sort('{1,2,3,2,1}'::int[])) ,但它不工作。

是否有空闲的PostgreSQL连接超时?

1 S postgres 5038 876 0 80 0 – 11962 sk_wai 09:57 ? 00:00:00 postgres: postgres my_app ::1(45035) idle 1 S postgres 9796 876 0 80 0 – 11964 sk_wai 11:01 ? 00:00:00 postgres: postgres my_app ::1(43084) idle 我看到了很多。 我们正试图解决我们的连接泄漏。 但同时,我们要为这些空闲连接设置一个超时时间,最长可能是5分钟。

模拟CREATE DATABASE如果不存在PostgreSQL?

我想创build一个不存在的数据库通过JDBC。 不像MySQL,PostgreSQL不支持create if not exists语法。 什么是完成这个最好的方法? 应用程序不知道数据库是否存在。 它应该检查,如果数据库存在,应该使用它。 所以连接到所需的数据库是有道理的,如果由于数据库不存在而导致连接失败,它应该创build新的数据库(通过连接到默认的postgres数据库)。 我检查了Postgres返回的错误代码,但是我找不到任何相同的代码。 另一种方法是连接到postgres数据库,并检查是否存在所需的数据库并采取相应的措施。 第二个是有点繁琐的工作。 有什么办法可以在Postgres中实现这个function吗?

如何在postgres前端COPY中指定一个选项卡

我想使用psql“\ copy”命令将数据从制表符分隔的文件中提取到Postgres中。 我正在使用这个命令: \copy cm_state from 'state.data' with delimiter '\t' null as ; 但我得到这个警告(表格实际加载罚款): WARNING: nonstandard use of escape in a string literal LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';' HINT: Use the escape string syntax for escapes, eg, E'\r\n'. 如果“\ t”不正确,我如何指定标签?

在Rails模型中使用多个PostgreSQL模式

我有一个PostgreSQL数据库为我的Rails应用程序。 在名为“public”的模式中,存储了主要的Rails模型表等等。我创build了一个“discogs”模式,其中有一些名称有时与“public”模式相同的表 – 这就是我正在使用模式来组织这个。 如何在我的应用程序中从“discogs”模式设置模型? 我将使用太阳黑子来让Solr索引这些模型。 我不确定你会如何做到这一点。

如何在Postgres 9.4中对JSONBtypes的列执行更新操作

仔细查看Postgres 9.4数据typesJSONB的文档,我不会立即明白如何在JSONB列上进行更新。 JSONBtypes和function的文档: http://www.postgresql.org/docs/9.4/static/functions-json.html http://www.postgresql.org/docs/9.4/static/datatype-json.html 举个例子,我有这个基本的表结构: CREATE TABLE test(id serial, data jsonb); 插入很容易,如: INSERT INTO test(data) values ('{"name": "my-name", "tags": ["tag1", "tag2"]}'); 现在,我将如何更新“数据”列? 这是无效的语法: UPDATE test SET data->'name' = 'my-other-name' WHERE id = 1; 这是logging在某处明显,我错过了? 谢谢。