1
投票
2答案
1684 次观看

克隆的ActiveRecord对象在保存期间将空ID发送给Postgres

我需要保存ActiveRecord对象的副本,所以我在使用类似的东西: @original = Model.find(params[:id]) @copy = @original.clone 但是,当我尝试将其保存到Postgres时: PGError:错误:“ id”列中的空值违反了非空约束 在控制台中: @ copy.id =>无 如何使ActiveRecord不发送INSERT语句中的id列? 更新: 我做了些小改动后问题就消失了 @new = Model.new(param...

11
投票
3答案
2242 次观看

如何在数据库中模拟标记的并集?

在数据库中模拟标记的联合的最佳方法是什么? 我说的是这样的: create table t1 { vehicle_id INTEGER NOT NULL REFERENCES car(id) OR motor(id) -- not valid ... } vehicle_id是汽车表或汽车表中的ID,并且知道哪个。 (假设汽车和汽车桌没有什么共同点0

2
投票
2答案
1359 次观看

使用Psycopg2维持Python和Postgresql之间连续连接的最佳/最佳实践

我正在用Python开发的具有Postgresql 8.3的应用程序,该应用程序可以在局域网中的多台计算机上运行。 所有机器 1)从数据库服务器获取大量数据(假设数据库在2秒的时间内从一台计算机上获得了100个不同的查询),并且大约有10或11台计算机在执行此操作。 2)处理完数据机后,必须更新某些表(每1.5秒每台计算机大约3或4个更新/插入查询)。 我注意到的是,数据库有时由于异常终止服务器进程或冻结服务器计算机(需要硬重置)而关闭。 通过所有机器始终保持与数据库的恒定连接的方式,即使用Psycopg2(在Python中)建立连接后,它将保持活动状态,直到处理完成(可...

1
投票
1答案
515 次观看

Django + Postgresql->未处理的异常

我偶尔但经常在使用带有postgresql的psycopg2的cursor.execute(django1.1 / db / models / sql / query.py第2369行)中遇到未处理的异常。 看起来数据库以某种方式断开了连接,因此Django崩溃了。对于未处理的异常,Django的bugtrack(#11015)中有一张票,但是我对db为何断开连接的原因感兴趣,而不是Django为什么没有捕获它的原因感兴趣。 使用Django的开发者。服务器上永远不会发生此错误(它顺序运行db请求,并发不会发生),所以这就像它与db请求并发或其他事情有关。 我无权访问postgr...

1
投票
3答案
259 次观看

网站上的字符编码有困难

我有一个网站,允许来自世界各地的用户提交个人资料。在存储/检索/显示字符之间的某个位置,它们无法正确呈现。我不确定哪一步出了问题,但这是正在发生的事情的分解。 当我通过psql命令行界面从PostgreSQL数据库中执行SELECT时,我看到一些字符,例如以下内容,这使我相信它们可以正确保存: ’ … å 但是,在我的网站上,我看到上述字符分别显示如下: â …… Ã¥ 我尝试从以下位置更改标头中的编码,但是没有运气: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt...

1
投票
9答案
5630 次观看

如何在sql select语句中加入属性?

例如,我想在select语句中加入几个属性 select id, (name + ' ' + surname + ' ' + age) as info from users 这行不通,怎么办? 我正在使用postgreSQL。

1
投票
2答案
1894 次观看

强制postgres转储使用副本而不是INSERTS

在还原某些数据库备份时,我注意到pg_dump实际上正在使用INSERTS而不是COPY。我什至没有指定-d标志,但它仍在为我尝试转储的每个数据库/表使用INSERTS,这就是为什么还原需要花费数小时而不是数分钟的原因。 根据pg docs pg_dump默认情况下应该使用COPY,但在我看来不是。有没有办法确保pg_dump使用COPY吗? 这是pg_dump命令: pg_dump -Fp -t some_table -h localhost -d thisDB -f / some_dir / bkup 有什么想法吗? 谢谢。

4
投票
7答案
15190 次观看

如何使用spring JdbcTemplate更新postgresql数组列?

我使用的是Spring JdbcTemplate,并且卡在查询中更新实际上是int数组的列的位置。该数据库是postgres 8.3.7。 这是我正在使用的代码: public int setUsersArray(int idUser, int idDevice, Collection<Integer> ids) { int update = -666; int[] tipi = new int[3]; tipi[0] = java.sql.Types.INTEGER; tipi[1] = java.sql.Types.INTEGER;...

7
投票
3答案
3487 次观看

PostgreSQL,Rails和:order =>问题

我的ActiveRecord模型中包含以下行: class Record < ActiveRecord::Base has_many :users, :through => :record_users, :uniq => true, :order => "record_users.index ASC" 这旨在使我能够通过使用record_users模型中的索引字段进行排序的方式来读取record.users。 问题是这在PostgreSQL上失败,并显示以下错误: ActionView::TemplateError (PGError: ER...

6
投票
5答案
3595 次观看

PostgreSQL nextval生成现有值

我不得不从基于Rails应用程序的基于mySql的ruby迁移到使用postgresql。到目前为止没有问题,我不知道如何解决。 数据的迁移带来了id,而postgresql现在存在现有id的问题:我不清楚它从何处获得用于确定nextval基础的值:它当然不是最高的值,尽管您可能会认为这是一个好主意。无论如何,它现在正在与现有的id值冲突。通过标准RoR迁移创建的id列定义为 not null default nextval('geopoints_id_seq'::regclass) 在某个地方可以盗用它用作基础的值吗?现在,大约20个表中的任何一个都可能出现此问题:我可以使...

15
投票
5答案
13925 次观看

PostgreSQL,从2个表中选择,但仅从表2中选择最新元素

嘿,我在PostgreSql中有2个表: 1 - documents: id, title 2 - updates: id, document_id, date 和一些数据: 文档: | 1 | Test Title | 更新: | 1 | 1 | 2006-01-01 | | 2 | 1 | 2007-01-01 | | 3 | 1 | 2008-01-01 | 因此,所有更新都指向同一文档,但是所有更新的日期都不同。 我想做的是从documents表中进行选择,但还要包括基于日期的最新更新。 这样的查询应如何显示?这是我目前拥有的,但我列出的...

2
投票
2答案
1336 次观看

使用什么文本编码?

我需要设置PostgreSQL DB的文本编码来处理非美国英语字符,这些字符会以德语,西班牙语和法语等语言显示。我应该使用什么字符编码?

2
投票
1答案
548 次观看

在PostgreSQL中所有表的所有记录中将所有空字符串设置为NULL

我想用PostgreSQL中所有表的所有列中的空字符串更新所有记录。有没有办法做到这一点的查询?或者至少如何查询没有NOT NULL约束的所有列。

13
投票
6答案
5699 次观看

用随机数替换序列

我想用自己定制的id生成器替换我在postgresql数据库中用于id的一些序列。生成器将产生一个随机数,最后带有一个校验位。因此: SELECT nextval('customers') 将被这样的东西代替: SELECT get_new_rand_id('customer') 然后该函数将返回一个数字值,例如:[1-9][0-9]{9},其中最后一位是校验和。 我所担心的是: 我如何使事物具有原子性 如何避免两次返回相同的id(试图将其插入具有唯一约束的列中会被捕获,但是我认为这太晚了) 这是个好主意吗? 注意1 :我不想使用uuid,因为它可以与客户...

8
投票
2答案
20881 次观看

Postgres查询错误

我在postgres中有一个查询 insert into c_d (select * from cd where ak = '22019763'); 然后出现以下错误 ERROR: column "region" is of type integer but expression is of type character varying HINT: You will need to rewrite or cast the expression.

4
投票
1答案
14353 次观看

(Postgres)row_number 8.2中的OVER分区

前一段时间,我碰巧通过解决了与PG相关的问题。 基本上,它是关于在8.4中的分区上使用row_number。 现在我不得不为8.2创建相同的东西,因为我的一位客户在 8.2,迫切需要它。 我所知道的(在8.4上)如下: SELECT custId, custName, 'xyz-' || row_number() OVER (PARTITION by custId) AS custCode 基本上计算custId的出现并从中分配custCode。 (只是一个例子,以显示我要做什么;当然查询要复杂得多) 我想出了针对上述问题的解决方案,但没有得到 工作,因为还有更多障碍。...

2
投票
3答案
2851 次观看

从另一行更新postgres中的一行

我有两个表,一个称为详细信息,另一个称为c_details。这两个表完全相同,只是表名不同 不,我在这两个表中都有数据行 是否可以使用c_details中的行来更新行的详细信息 例如 更新详细信息SET(从c_details中选择*)?

78
投票
8答案
141041 次观看

SQL LIKE条件检查整数?

我正在使用一组SQL LIKE条件来遍历字母并列出以适当字母开头的所有项目,例如获取标题以字母“ A”开头的所有书籍: SELECT * FROM books WHERE title ILIKE "A%" 这对字母很好,但是我如何列出所有以任何数字开头的项目?值得的是,它在Postgres DB上。

55
投票
5答案
73619 次观看

使用Postgresql进行高效的最新记录查询

我需要做一个大查询,但是我只想要最新记录。 对于单个条目,我可能会做类似的事情 SELECT * FROM table WHERE id = ? ORDER BY date DESC LIMIT 1; 但是我需要提取大量记录(成千上万条记录)的最新记录,而只有最新记录。 这就是我所拥有的。这不是很有效。我想知道是否有更好的方法。 SELECT * FROM table a WHERE ID IN $LIST AND date = (SELECT max(date) FROM table b WHERE b.id = a.id);

1
投票
3答案
389 次观看

如何在PostgreSQL数据库中声明范围重叠约束?

假设我们有一个具有以下定义的表: range ( id bigint primary key, colourId int references colour(id), smellId int references smell(id), from bigint, to bigint ) 此表实际上是大大的表的缩小视图: item ( id bigint primary key, colourId int references colour(id), smellId int references smell(id), CONSTRAINT i...

1
投票
4答案
3275 次观看

将数据从Postgresql复制到MySQL

我遇到了一个问题,我只需要将数据从Postgresql数据库复制到Mysql数据库。我已经有空表的Mysql数据库。通过使用PGAdmin,我得到了一个备份(仅数据,没有数据库架构)。我尝试使用PSQL工具,但该工具不断出现分段错误,目前无法修复。我正在使用Ubuntu。任何有关指南的简单帮助都非常值得您复制数据。

1
投票
3答案
5489 次观看

使用Libpq将iPhone App连接到PostgreSQL

我需要为iPhone创建一个应用程序,该应用程序将使用libpq连接到PostgreSQL 8.4数据库。问题是我无法获得链接到libpq的简单iPhone进行编译。但是,我可以得到与普通Mac桌面应用程序相同的应用程序,可以毫无问题地编译并连接到PostgreSQL。我在雪豹上运行的Xcode 3.2。 我正在为arm和x86_84构建libpq。手臂构建用于真实的iPhone,x86_64用于iPhone模拟器。然后,我创建一个包含两个文件的胖二进制文件,最后得到一个名为libpq的文件。该文件是我在常规Mac应用程序中使用的文件,它工作正常,并在尝试构建iPhone应用程序时引起...

10
投票
2答案
9439 次观看

PostgreSQL + PHP + UTF8 =无效的字节序列编码

我正在将数据库从mysql迁移到postgresql。mysql db的默认排序规则为UTF8,postgres也使用UTF8,我使用pg_escape_string()编码数据。但是,无论出于何种原因,我都会遇到一些有关编码错误的时髦错误: pg_query() [function.pg-query]: Query failed: ERROR: invalid byte sequence for encoding "UTF8": 0xeb7374 HINT: This error can also happen if the byte sequence does not match...

4
投票
2答案
1283 次观看

涉及OR-ed条件的高级索引(pgsql)

我开始对PostgreSQL索引有了更好的了解,但是我遇到了OR条件的问题,在该条件下,我不知道如何优化索引以实现更快的查询。> 我有6个条件,当单独运行时,它们的成本似乎很小。这是经过修剪的查询的示例,包括查询计划的计算时间。 (注意:为了降低复杂性,我下面没有为这些查询输出实际的查询计划,但是正如我期望的那样,它们都使用了nested loop left joins和index scans,并带有适当的索引。查询计划做出更有意义的响应。) EXPLAIN ANALYZE SELECT t1.*, t2.*, t3.* FROM t1 LEFT JOIN t2 on ...

2
投票
2答案
812 次观看

如何在Postgresql中查询枚举的值

嗨,我想在postgresql中使用一个枚举来代替创建表,因为这些值我从不改变,但是我希望能够为可能会检查它们的应用程序检索这些值,是有什么方法可以查询它的值?

5
投票
1答案
572 次观看

Django测试失败,并显示InternalError:没有此类保存点。DB:Postgres,通过mysql

有趣的是,它也可以在shell上使用。 [MY code which calls Model.objects.get_or_create(...)] File "/usr/lib/python2.5/site-packages/django/db/models/manager.py", line 123, in get_or_create return self.get_query_set().get_or_create(**kwargs) File "/usr/lib/python2.5/site-packages/django/db/models/query...

2
投票
2答案
3752 次观看

使用现有用户名的PostgreSQL远程访问

我想使用现有用户的名称访问我的PostgreSQL 8.3数据库,但是当我尝试登录时,密码验证失败。我可以通过创建一个新的Postgres用户来访问数据库: postgres createuser -P newusername 因此,我尝试使用现有用户名创建用户,但它说该用户已经存在,不允许我创建它。 在pga_hba.conf中,我有: host db_name all 0.0.0.0/0 md5 ,它不会抱怨连接-只是密码验证。有没有办法使用现有用户远程访问数据库?

5
投票
1答案
3892 次观看

如何在PostgreSQL中进行DISTINCT和ORDER BY?

PostgreSQL将使我猛击小动物。我正在针对MySQL执行以下SQL语句,以获取唯一的城市/州/国家/地区清单。 SELECT DISTINCT city , state , country FROM events WHERE (city > '') AND (number_id = 123) ORDER BY occured_at ASC 但是这样做会使PostgreSQL抛出此错误: PGError:错误:对...

2
投票
2答案
8213 次观看

使用嵌套子选择在Postgres中更新记录

我有一个表,其中已添加新列,并且我想编写一条SQL语句以根据现有信息更新该列。这是两个表和相关的列 '同盟' => ID =>联盟键 => League_id(这是新列) “权限” => ID =>联盟键 现在,我要用简单的英语说的是这个 Set leagues.league_id to be permissions.id for each value of permissions.league_key 我曾经这样尝试过SQL: 更新联赛 SET League_id = (从权限中选择ID,其中联盟编号= (从联赛中选择与众不同(le...

20
投票
5答案
19098 次观看

我如何知道我的PostgreSQL服务器是否使用“ C”语言环境?

我正在尽我所能来优化我的PostgreSQL 8.3数据库表,但是我不确定是否需要对某些要对字符串的前N个字符执行varchar_pattern_ops的列使用LIKE。根据本文档,仅需要使用xxx_pattern_ops“...当服务器不使用标准的'C'语言环境时。” 有人可以解释这是什么意思吗?如何检查数据库使用的语言环境?