Questions tagged «postgresql»

PostgreSQL的所有版本。如果该上下文很重要,请添加其他特定于版本的标记,例如postgresql-11。

2
如何强制Windows在PostgreSQL中支持不支持的LC_COLLATE和LC_TYPE?
我已经重新安装了PostgreSQL9.1.x。不幸的是,我发现OS不支持LC_COLLATE = 'pl_PL.utf8'和LC_CTYPE = 'pl_PL.utf8'。我在PostgreSQL文档中读到: 在所有平台上,都可以使用名为default,C和POSIX的排序规则。根据操作系统支持,可能会提供其他归类。 但是,是否可以强迫Windows支持该语言环境呢?我的意思是补丁,插件之类的东西。

5
PostgreSQL导入CSV文件导致语法错误
我正在尝试通过“ COPY”命令将CSV文件导入数据库;但是,出现了(看起来很常见)错误,我需要成为超级用户,而应该使用“ \ copy”。但是,当使用\ copy时,出现语法错误: ERROR: syntax error at or near "\" LINE 1: \copy 插入符号指向“ \”。这是我的查询: \copy tablename(column2, column3, column4, column5) from '/home/uploads/data.csv' WITH DELIMITER ',' CSV HEADER' 我尝试了“复制”和“ \复制”。第一个给我一个超级用户错误,第二个给了我语法错误。关于如何解决它的任何想法?让它起作用? 我正在通过myPgAdmin的sql输入字段执行命令。 我唯一的其他问题是关于通过tablename(column2,column3等等)导入列。那是正确的语法吗?

3
如何串联psql变量?
如何连接两个psql(PostgreSQL客户端)变量?我想通过串联目录路径变量和文件名变量来生成绝对路径。 我已经试过了: \set path '/tmp/' \set file 'foo' \echo :path:file 但是psql在路径和文件之间放置一个空格,并输出: /tmp/ foo

3
在全文搜索查询中优化ORDER BY
我有一张entities约有1500万条记录的大桌子。我想在其中找到与“曲棍球”匹配的前5行name。 我在上有全文索引name,该索引用于:gin_ix_entity_full_text_search_name 查询: SELECT "entities".*, ts_rank(to_tsvector('english', "entities"."name"::text), to_tsquery('english', 'hockey'::text)) AS "rank0.48661998202865475" FROM "entities" WHERE "entities"."place" = 'f' AND (to_tsvector('english', "entities"."name"::text) @@ to_tsquery('english', 'hockey'::text)) ORDER BY "rank0.48661998202865475" DESC LIMIT 5 持续时间25,623 ms 解释计划 1个限制(cost = 12666.89..12666.89行= 5宽度= 3116) 2->排序(费用= 12666.89..12670.18行= 6571宽度= 3116) 3排序键:(ts_rank(to_tsvector('english':: regconfig,(name):: text),'''hockey''':: tsquery)) 4->对实体进行位图堆扫描(cost = 124.06..12645.06行= 6571宽度= 3116) …

1
PostgreSQL故障转移-我应该使用哪些工具?
这是场景: 有两台运行CentOS 6.2的计算机-machine0和machine1 两者都安装了PostgreSQL 9.1。 其中一个应处于活动状态,作为主系统,并且通过异步流复制另一台计算机,备用数据库应将更改从主系统复制到数据库。 假设机器0是主服务器,机器1是备用服务器。 如果主服务器(例如machine0)发生故障(此处的失败表示Postgresql服务器崩溃),则备用服务器应从主服务器接管并成为新的主服务器。 在machine1中,新的master处理所有的数据库操作,并且当machine0中的postgresql服务器恢复联机时,它应该成为备用服务器,从失去与machine1的连接点开始进行同步,并将所有更改复制到数据库并保持备用模式。 当machine1发生故障时,整个循环将重复。 当备用数据库发生故障并重新联机时,它应该开始从主数据库读取数据并同步数据。 我对需要使用哪些工具进行设置感到困惑,因为我了解PostgreSQL默认情况下没有故障转移。 如果有人可以将我链接到描述如何做我想做的事情的线程/页面,我将非常感激。


3
PostgreSQL与Oracle高可用性解决方案?
PostgreSQL有一系列不同的高可用性选项,这些选项代表了将复制构建到RDBMS中的许多不同方式。 这是PostgreSQL高可用性,负载平衡和复制功能列表 问题 Oracle支持PostgreSQL高可用性矩阵中的哪些方法? oracle使用PostgreSQL不具备的技术来实现高可用性吗?

2
PostgreSQL:在同一查询中重用复杂的中间结果
使用PostgreSQL(8.4),我创建总结了几桌各种结果的视图(例如创建列a,b,c在视图中),然后我需要一些结果结合在同一个查询(例如a+b,a-b,(a+b)/c,...),以产生最终结果。我要注意的是,即使在同一查询中完成操作,每次使用时,中间结果都会被完全计算。 有没有一种方法可以对此进行优化,从而避免每次都计算相同的结果? 这是重现该问题的简化示例。 CREATE TABLE test1 ( id SERIAL PRIMARY KEY, log_timestamp TIMESTAMP NOT NULL ); CREATE TABLE test2 ( test1_id INTEGER NOT NULL REFERENCES test1(id), category VARCHAR(10) NOT NULL, col1 INTEGER, col2 INTEGER ); CREATE INDEX test_category_idx ON test2(category); -- Added after edit to this question CREATE INDEX test_id_idx …

1
PostgreSQL中的模式概念
我无法理解PostgreSQL中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它? 如果我决定现在不考虑它们,以后再担心它们,将来会对我产生影响吗? 一个例子的解释会很好。

2
PostgreSQL:使用其他表的模式和表名吗?
考虑一下我所有的模式名称都放在一个表中而我的所有表名称都放在另一个表中的情况。 是否可以执行以下操作(伪代码)? SELECT value FROM (SELECT schema_name FROM schemas).(SELECT table_name FROM tables) 还是我必须将查询分为三个SELECT?


3
Postgres,MVCC和锁定
我有一系列类似于以下内容的SQL语句: BEGIN; SELECT counter FROM table WHERE id=X FOR UPDATE; REALLY COMPLEX QUERY; UPDATE table SET counter=Y WHERE id=X; END; 我想防止在重新计算计数器值时读取该计数器,但是根据Postgres的文档,“行级锁不影响数据查询;它们仅阻止写入同一行的写入器。” 问题: 如果不阻止读取,那么“排他性”行锁又有什么意义呢?只是为了防止其他事务获取共享锁吗? 如果我使用SELECT ... FOR SHARE读取该行,是否会达到与“排他”锁相同的效果? 是否可以为表/模式/数据库关闭MVCC并允许就地写入?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.