相关疑难解决方法(0)

utf8_general_ci和utf8_unicode_ci之间有什么区别?

utf8_general_ci和之间utf8_unicode_ci,性能方面有什么不同吗?

mysql unicode collation utf-8 character-set

998
推荐指数
7
解决办法
38万
查看次数

GiST和GIN指数之间的差异

我正在实现一个具有数据类型为的列的表,tsvector我试图了解哪个索引更适合使用?

GIN还是GiST?

通过这里查看postgres文档,我似乎得到了:

  • GiST更新和构建索引的速度更快,而且比杜松子酒更准确.

  • GIN更新和构建索引的速度较慢,但​​更准确.

好的,那么为什么有人想要杜松子酒的gist索引字段呢?如果要点可能会给你错误的结果?必须有一些优势(外部表现).

当我想要使用GIN和GiST时,有人可以用外行的方式解释吗?

postgresql indexing full-text-search

42
推荐指数
1
解决办法
2万
查看次数

在PostgreSQL上创建非强制扩展时出错

我正在尝试将PostgreSQL配置为在我的rails应用程序中使用全文搜索,如此Railscast中所述.

我正在使用与with一起Ubuntu 12.04运行PostgreSQL 9.1.5安装的新服务器.apt-getppa:pitti/postgresqlprecise

尝试运行迁移时,当我在psql控制台中使用peer postgres用户尝试相同的命令时,我收到以下错误:

postgres=# CREATE EXTENSION unaccent;
Run Code Online (Sandbox Code Playgroud)

错误:无法打开扩展控制文件"/usr/share/postgresql/9.1/extension/unaccent.control":
没有这样的文件或目录

在我的本地框运行中,Ubuntu 10.04 desktop我使用相同的存储库(natty),它运行良好.

任何见解将不胜感激.

postgresql full-text-search unaccent rails-postgresql postgresql-9.1

35
推荐指数
2
解决办法
2万
查看次数

合并两列并添加到一个新列中

在PostgreSQL中,我想使用SQL语句组合两列并从中创建一个新列.

我正在考虑使用concat(...),但有更好的方法吗?
最好的方法是什么?

sql postgresql null concatenation

31
推荐指数
3
解决办法
9万
查看次数

用于删除postgreSQL中的重音的功能

可能重复:
PostgreSQL是否支持"重音不敏感"排序规则?

我正在尝试删除重音,所以当我进行SELECT时它会忽略它们.

例:

SELECT * FROM table WHERE
table.id ILIKE 'Jose';
Run Code Online (Sandbox Code Playgroud)

它返回:

José
Jose
Jósé
Jóse
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

我发现这些功能并且它们不起作用,我想可能是因为我使用的是Struts 1.X,请检查它们并告诉我哪里错了或我应该使用哪些其他功能.

第一功能

CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$
DECLARE
    input_string text := $1;
BEGIN

input_string := translate(input_string, 'âãäå???ÁÂÃÄÅ???', 'aaaaaaaaaaaaaaa');
input_string := translate(input_string, 'èééêë??????????', 'eeeeeeeeeeeeeee');
input_string := translate(input_string, 'ìíîïì???ÌÍÎÏÌ???', 'iiiiiiiiiiiiiiii');
input_string := translate(input_string, 'óôõö???ÒÓÔÕÖ???', 'ooooooooooooooo');
input_string := translate(input_string, 'ùúûü????ÙÚÛÜ????', 'uuuuuuuuuuuuuuuu');

return input_string;
END;
$$ LANGUAGE plpgql;
Run Code Online (Sandbox Code Playgroud)

第二功能

CREATE OR REPLACE FUNCTION norm_text_latin(character varying) 
  RETURNS character varying AS …
Run Code Online (Sandbox Code Playgroud)

postgresql function struts-1

25
推荐指数
1
解决办法
2万
查看次数

Heroku上的Rails 3.1中的Postgres重音不敏感LIKE搜索

如何在Rails中修改搜索查询的where/like条件:

find(:all, :conditions => ["lower(name) LIKE ?", "%#{search.downcase}%"])

无论重音如何,结果都是匹配的?(例如métro= metro).因为我使用的是utf8,所以我不能使用"to_ascii".生产正在Heroku上运行.

postgresql ruby-on-rails unaccent rails-postgresql

16
推荐指数
2
解决办法
1万
查看次数

检查Postgres数组中是否存在NULL

此问题类似,如何查找数组中是否存在NULL值?

这是一些尝试.

SELECT num, ar, expected,
  ar @> ARRAY[NULL]::int[] AS test1,
  NULL = ANY (ar) AS test2,
  array_to_string(ar, ', ') <> array_to_string(ar, ', ', '(null)') AS test3
FROM (
  SELECT 1 AS num, '{1,2,NULL}'::int[] AS ar, true AS expected
  UNION SELECT 2, '{1,2,3}'::int[], false
) td ORDER BY num;

 num |     ar     | expected | test1 | test2 | test3
-----+------------+----------+-------+-------+-------
   1 | {1,2,NULL} | t        | f     |       | t
   2 | {1,2,3}    | f        | f …
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql null postgresql-9.1

11
推荐指数
1
解决办法
4945
查看次数

提交事务时以原子方式设置SERIAL值

假设我有一个表,我想使用serial主键来请求客户端的更改.客户将询问"在密钥X后给我更改".不使用SERIALIZABLE隔离级别或锁定,这很容易出现竞争条件.

事务A可以先启动,然后执行写操作,然后花费很长时间来提交.同时事务B将在A提交之前启动并提交.来自B的写入将获得比来自A的写入更高的主键.如果客户端现在要求更改,则它将错过来自A的仍然未提交的写入,并记下最新的最高主键.因此,即使在A提交之后,客户端也永远不会看到该更改,因为它的密钥低于客户端已经获得的更改.

是否有可能serial在提交时以原子方式确定a (或来自计数器的类似值),以便保证在提交时它将高于所有其他值,并且低于在其之后提交的所有值?如果不是解决这个问题的最佳方法是什么?

sql postgresql transactions commit

10
推荐指数
1
解决办法
1562
查看次数

使用&&加入TSTZRANGE时,Postgresql 9.4查询会逐渐变慢

我正在运行一个在添加记录时逐渐变慢的查询.通过自动过程(bash调用psql)连续添加记录.我想纠正这个瓶颈; 但是,我不知道我最好的选择是什么.

这是pgBadger的输出: 每小时执行的查询图表

Hour    Count   Duration    Avg duration
00      9,990   10m3s       60ms     <---ignore this hour
02      1       60ms        60ms     <---ignore this hour
03      4,638   1m54s       24ms     <---queries begin with table empty
04      30,991  55m49s      108ms    <---first full hour of queries running
05      13,497  58m3s       258ms
06      9,904   58m32s      354ms
07      10,542  58m25s      332ms
08      8,599   58m42s      409ms
09      7,360   58m52s      479ms
10      6,661   58m57s      531ms
11      6,133   59m2s       577ms
12      5,601   59m6s       633ms
13      5,327   59m9s       666ms
14 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql database-design postgresql-performance postgresql-9.4

9
推荐指数
1
解决办法
575
查看次数

如何向非超级用户提供Postgres扩展

我安装了Postgres扩展(unaccent)

sudo su posgres
psql create extension unaccent
Run Code Online (Sandbox Code Playgroud)

现在我可以在sql中使用unacccent,前提是我是Postgres用户.

如何向所有/另一个用户提供Postgres扩展

(我在Ubuntu上使用apt-install安装Postgres 9.3.5)

jthinksearch=# \dx;
                         List of installed extensions
   Name   | Version |   Schema   |                 Description
----------+---------+------------+---------------------------------------------
 plpgsql  | 1.0     | pg_catalog | PL/pgSQL procedural language
 unaccent | 1.0     | public     | text search dictionary that removes accents
(2 rows)

jthinksearch=#


jthinksearch=> \du;
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 ubuntu    |                                                | …
Run Code Online (Sandbox Code Playgroud)

postgresql psql

8
推荐指数
2
解决办法
8593
查看次数