Tag: postgresql

PostgreSQL,检查相对于“今天”的date

想知道是否有人可以帮助一些Postgres。 我有一个表,它有一个名为mydate这是一个postgresdatetypes的列。 我想做一些事情: SELECT * FROM MyTable WHERE mydate > [Today-1year] 我从来没有用过Postgres,我确信我只需要知道一些函数的名字,我会很乐意自己查阅这个引用。 任何人都可以指向正确的方向吗? 谢谢!

有没有办法在PostgreSQL中自动删除一个数据input后设置“到期”时间?

有没有办法在PostgreSQL的数据条目上设置某种“过期”时间? 我正在考虑Redis中相当于“EXPIRE”的内容 。 我不想存储时间戳,然后手动编写某种cron作业来检查哪些条目已过期。 我试图找出PostgreSQL中是否有任何可以提供这种function的本地特性,或者是否有必要为将来的版本请求这样的特性。

PostgreSQL函数是事务性的吗?

是PostgreSQL函数,如下面的自动事务? CREATE OR REPLACE FUNCTION refresh_materialized_view(name) RETURNS integer AS $BODY$ DECLARE _table_name ALIAS FOR $1; _entry materialized_views%ROWTYPE; _result INT; BEGIN EXECUTE 'TRUNCATE TABLE ' || _table_name; UPDATE materialized_views SET last_refresh = CURRENT_TIMESTAMP WHERE table_name = _table_name; RETURN 1; END $BODY$ LANGUAGE plpgsql VOLATILE SECURITY DEFINER; 换句话说,如果在函数执行过程中发生错误,是否所有更改都会回滚 ? 如果这不是默认的行为,我怎样才能使交易function?

尝试创build扩展时出现PostgreSQL错误

ERROR: could not open extension control file "/usr/share/postgresql/9.1/extension/postgis.control": No such file or directory 我尝试CREATE EXTENSION postgis;时得到的是什么CREATE EXTENSION postgis; 有人可以告诉我为什么是这样,我能做些什么来解决这个问题?

Postgres:如何做复合键?

我无法理解创build复合键时的语法错误。 这可能是一个逻辑错误,因为我testing了许多品种。 你如何在Postgres中创build复合键? CREATE TABLE tags ( (question_id, tag_id) NOT NULL, question_id INTEGER NOT NULL, tag_id SERIAL NOT NULL, tag1 VARCHAR(20), tag2 VARCHAR(20), tag3 VARCHAR(20), PRIMARY KEY(question_id, tag_id), CONSTRAINT no_duplicate_tag UNIQUE (question_id, tag_id) ); ERROR: syntax error at or near "(" LINE 3: (question_id, tag_id) NOT NULL, ^

在Mac OS上使用psycopg2的问题(优胜美地)

目前我正在python中安装psycopg2在eclipse中工作。 我发现很多问题: 第一个问题sudo pip3.4 install psycopg2不起作用,它显示以下消息 错误:找不到pg_config可执行文件。 修复: export PATH=/Library/PostgreSQL/9.4/bin/:"$PATH” 当我在我的项目中导入psycopg2我obtein: ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so库libssl.1.0.0.dylib库libcrypto.1.0.0.dylib 修复: sudo ln -s /Library/PostgreSQL/9.4/lib/libssl.1.0.0.dylib /usr/lib sudo ln -s /Library/PostgreSQL/9.4/lib/libcrypto.1.0.0.dylib /usr/lib 现在我正在获得: ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/psycopg2/_psycopg.so,2):找不到符号:_lo_lseek64引用自:/ Library / Frameworks / Python .framework / Versions / 3.4 / lib / python3.4 / site-packages / psycopg2 / _psycopg.so预计位于/Library/Frameworks/Python.framework/Versions/3.4/lib中的/usr/lib/libpq.5.dylib /python3.4/site-packages/psycopg2/_psycopg.so 你可以帮我吗?

Postgresql适配器(pg):无法连接到服务器

我得到这个错误每一个我运行我的Rails应用程序(它不能连接到我的本地Postgresql ) /Users/leonardo/.rvm/gems/ruby-1.9.3-p362/gems/activerecord-3.2.11/lib/ active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize': could not connect to server: No such file or directory (PG::Error) Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? 我正在使用Postgres.app ,它正确运行。 如果我跑 $ psql 我可以正确login到Postgresql控制台。 $ which psql /Applications/Postgres.app/Contents/MacOS/bin/psql 的Gemfile source 'https://rubygems.org' ruby "1.9.3" gem 'rails', '3.2.11' gem "pg" database.yml的 development: adapter: postgresql encoding: unicode […]

使用PL / pgSQL将多个字段作为PostgreSQL中的logging返回

我正在写一个SP,使用PL / pgSQL。 我想返回一个由几个不同表格的字段组成的logging。 可能看起来像这样: CREATE OR REPLACE FUNCTION get_object_fields(name text) RETURNS RECORD AS $$ BEGIN — fetch fields f1, f2 and f3 from table t1 — fetch fields f4, f5 from table t2 — fetch fields f6, f7 and f8 from table t3 — return fields f1 … f8 as a record END $$ […]

使用PostgreSQL的模式和Rails创build一个多租户应用程序

我已经知道了 我正在学习如何在Rails中创build一个多租户应用程序,该应用程序根据用于查看应用程序的域或子域来提供来自不同架构的数据。 我已经有几个回答的问题了: 你怎么能得到子域福与域的工作呢? 这里有人问你把这个博客引向你的同一个问题 。 什么数据库,以及如何构build? Guy Naor的一个很好的演讲 ,以及有关PostgreSQL和模式的好问题 。 我已经知道我的模式都将具有相同的结构。 他们将持有的数据不同。 那么, 如何运行所有模式的迁移呢? 这是一个答案 。 这三点涵盖了我需要知道的很多常规内容。 然而,在接下来的步骤中,我似乎有很多方法来实现的东西。 我希望有一个更好,更简单的方法。 最后,对我的问题 当新用户注册时,我可以轻松创build架构。 然而, 加载其余模式已经具有的结构的最好和最简单的方法是什么? 这里有一些问题/情况可能会给你一个更好的主意。 我应该把它传递给一个shell脚本 ,将公共模式转换为临时脚本 ,并将其导回到我的主数据库(很像Guy Naor在他的video中所说的)? 以下是我从freenode上有用的#postgres获得的简短摘要/脚本 。 虽然这可能会起作用,但我必须在Rails之外做很多事情,这让我有点不舒服,这也让我接下来的问题。 有没有办法直接从Ruby on Rails做到这一点 ? 就像创build一个PostgreSQL模式一样,然后将Rails数据库模式(schema.rb – 我知道这很混乱)加载到PostgreSQL模式中。 有没有一个gem/插件已经有这些东西? 诸如“create_pg_schema_and_load_rails_schema(the_new_schema_name)”之类的方法。 如果没有的话,我可能会努力创build一个,但是我怀疑所有移动部分的testing效果如何(特别是如果我最终使用shell脚本来创build和pipe理新的PostgreSQL模式)。 谢谢,我希望不会太久!

PostgreSQL查询按天计算/分组,显示没有数据的日子

我需要创build一个返回的PostgreSQL查询 一天 当天发现的物体数量 即使在当天没有find任何物品, 每一天都会出现在结果中 ,这一点很重要。 (之前已经讨论过这个问题,但是在我的具体情况下,我还没有能够解决问题。) 首先,我发现一个SQL查询来生成一个范围的天 ,我可以join: SELECT to_char(date_trunc('day', (current_date – offs)), 'YYYY-MM-DD') AS date FROM generate_series(0, 365, 1) AS offs 结果是: date ———— 2013-03-28 2013-03-27 2013-03-26 2013-03-25 … 2012-03-28 (366 rows) 现在我试图把它join到一个名为“sharer_emailshare”的表中,该表有一个“created”列: Table 'public.sharer_emailshare' column | type ——————- id | integer created | timestamp with time zone message | text to | […]