Postgres:两个同名的字典
问题描述:
我使用以下查询创建了一个文本搜索字典。Postgres:两个同名的字典
CREATE TEXT SEARCH DICTIONARY english_stem
(TEMPLATE = snowball, Language = english, StopWords = english);
但我意识到,有已使用相同的名称“english_stem”字典是由超级用户拥有和我结束了有两个词典与同名“english_stem”;一个由超级拥有,另一个由我拥有。
于是,我放弃,我使用此查询创建的一个:
DROP TEXT SEARCH DICTIONARY english_stem;
但我正在逐渐“[42501]错误:必须是文本检索辞典english_stem的主人”的消息。我想丢弃查询试图删除超级用户拥有的,不属于我的english_stem字典。我如何删除我拥有的english_stem字典?
如果postgres允许同名的多个字典,我想在执行alter/drop命令时必须有一种方法来区分它们。顺便说一下,可能是由于我创建的那个,tsquery很慢;甚至比查询慢。
注意:我正在寻找一种方法来解决此问题,而无需联系超级用户。
答
我相信你在你的模式或公共场合中创建了字典。退房:
SELECT * from pg_catalog.pg_ts_dict
JOIN pg_catalog.pg_namespace n ON n.oid = pg_ts_dict.dictnamespace;
如果是这样,只需添加架构名称,如:
DROP TEXT SEARCH DICTIONARY public.english_stem;
+0
谢谢你这么多维罗。有效! –
您在不同的模式中创建了 - 只需指定完整路径 –