Tag: postgresql

Postgres:不同但只有一列

我有一个与名称(有超过1 mio。行)的pgsql表,但我也有很多重复。 我select3个字段: id , name , metadata 。 我想用ORDER BY RANDOM()和LIMIT 1000来随机select它们,所以我这样做是在我的PHP脚本中保存一些内存的很多步骤。 但是我怎么能这么做呢,只给了我一个没有名字重复的名单。 例如[1,"Michael Fox","2003-03-03,34,M,4545"]将被退回,但不是[2,"Michael Fox","1989-02-23,M,5633"] 。 名称字段是最重要的,并且每次执行select时都必须在列表中唯一,并且必须是随机的。 我尝试使用GROUP BY name ,然后它期望我有GROUP BY以及在一个aggragate函数中的id和元数据,但我不想让他们以某种方式过滤。 任何人都知道如何获取许多列,但只做一个独特的列?

我如何自动更新PostgreSQL中的时间戳

我希望代码能够在插入新行时自动更新时间戳,就像我可以在MySQL中使用CURRENT_TIMESTAMP所做的那样。 我将如何在PostgreSQL中实现这个function? CREATE TABLE users ( id serial not null, firstname varchar(100), middlename varchar(100), lastname varchar(100), email varchar(200), timestamp timestamp )

为什么Solr比Postgres快得多?

我最近从Postgres转到Solr,在我们的查询中看到了大约50倍的速度。 我们运行的查询涉及多个范围,我们的数据是车辆清单。 例如:“查找里程数<50,000,$ 5,000 <价格<$ 10,000,使=马自达的所有车辆…” 我在Postgres的所有相关列上创build了索引,所以它应该是一个相当公平的比较。 查看Postgres中的查询计划,尽pipe它仍然只是使用单个索引,然后扫描(我假设,因为它不能使用所有不同的指数)。 据我了解,Postgres和Solr使用模糊的类似数据结构(B-tree),并且它们都将数据caching在内存中。 所以我想知道这么大的性能差异是从哪里来的。 体系结构有什么不同可以解释这一点

PostgreSQL:提高pg_dump,pg_restore的性能

当我开始的时候,我用默认的plain格式使用了pg_dump 。 我失明了。 研究显示pg_dump -Fc | gzip -9 -c > dumpfile.gz改善时间和文件大小 pg_dump -Fc | gzip -9 -c > dumpfile.gz 。 我开悟了。 当重新创build数据库的时候, # create tablespace dbname location '/SAN/dbname'; # create database dbname tablespace dbname; # alter database dbname set temp_tablespaces = dbname; % gunzip dumpfile.gz # to evaluate restore time without a piped uncompression % […]

PostgreSQL中的CHARACTER VARYING和VARCHAR有什么区别?

John在我使用VARCHAR的地方使用了CHARACTER VARYING 。 我是一个初学者,而他是一个专家。 这表明我有一些我不知道的东西。 PostgreSQL中的CHARACTER VARYING和VARCHAR有什么区别?

SQL查询以获取给定密钥的每个实例的最近行

我试图从一个表可能包含一个用户的当前IP和一个或多个以前的IPS获取IP,用户和最新的时间戳。 我想为包含最近的IP和相关的时间戳的每个用户一行。 所以如果一张桌子看起来像这样: username | ip | time_stamp ————–|———-|————– ted | 1.2.3.4 | 10 jerry | 5.6.6.7 | 12 ted | 8.8.8.8 | 30 我希望查询的输出是: jerry | 5.6.6.7 | 12 ted | 8.8.8.8 | 30 我可以在一个单一的SQL查询吗? 如果重要,DBMS是Postgresql。

如何在PostgreSQL中暂时禁用触发器?

我是批量加载数据,并且可以在事后比在逐行的基础上更便宜地重新计算所有的触发器修改。 我怎样才能暂时禁用PostgreSQL中的所有触发器?

如何添加列,如果不存在PostgreSQL?

问题很简单。 如何添加列x到表y ,但只有当x列不存在? 我在这里find唯一的解决scheme如何检查列是否存在。 SELECT column_name FROM information_schema.columns WHERE table_name='x' and column_name='y';

你如何改变一个postgres数据库的字符编码?

我有一个使用默认字符集SQL_ASCII设置的数据库。 我想把它切换到UNICODE。 有没有一个简单的方法来做到这一点?

南:不能ALTER TABLE,因为它有未决的触发事件

我想从TextField中删除null = True: – footer=models.TextField(null=True, blank=True) + footer=models.TextField(blank=True, default='') 我创build了一个模式迁移: manage.py schemamigration fooapp –auto 由于一些页脚列包含NULL我得到这个错误,如果我运行迁移: django.db.utils.IntegrityError: column "footer" contains null values 我将这添加到模式迁移: for sender in orm['fooapp.EmailSender'].objects.filter(footer=None): sender.footer='' sender.save() 现在我得到: django.db.utils.DatabaseError: cannot ALTER TABLE "fooapp_emailsender" because it has pending trigger events 哪里不对?