2016-08-05 11 views
0

Ich habe ein Textsuchwörterbuch mit der folgenden Abfrage erstellt.Postgres: zwei Wörterbücher mit dem gleichen Namen

CREATE TEXT SEARCH DICTIONARY english_stem 
(TEMPLATE = snowball, Language = english, StopWords = english); 

Aber ich erkennen, dass es bereits ein Wörterbuch mit dem gleichen Namen ‚english_stem‘, die durch Super-User gehört und ich landete mit zwei Wörterbücher mit demselben Namen ‚english_stem‘; eins gehört super und eins gehört mir. So

Ich versuchte, das eine zu löschen, die ich mit dieser Abfrage erstellt:

DROP TEXT SEARCH DICTIONARY english_stem; 

Aber ich bin immer „[42501] ERROR: muss sein Besitzer Textsuche Wörterbuch english_stem“ -Meldung. Ich denke, die Drop-Abfrage versucht, das Englisch-System-Wörterbuch zu löschen, das dem Superuser gehört und nicht zu mir gehört. Wie kann ich das Wörterbuch English_stem, das ich besitze, löschen?

Wenn Postgres mehrere Wörterbücher mit dem gleichen Namen erlaubt, denke ich, es muss eine Möglichkeit geben, sie zu unterscheiden, wenn sie den Befehl zum Ändern/Ablegen auf ihnen ausführen.

Übrigens, wahrscheinlich aufgrund der von mir geschaffenen, ist Tsquery langsam; sogar langsamer als bei der Abfrage.

Hinweis: Ich suche nach einer Möglichkeit, dies zu lösen, ohne den Superbenutzer zu kontaktieren.

+1

Sie erstellt es in anderen Schema - nur angeben vollständigen Pfad –

Antwort

1

Ich glaube, Sie haben ein Wörterbuch in Ihrem Schema oder in der Öffentlichkeit erstellt. Check out:

SELECT * from pg_catalog.pg_ts_dict 
JOIN pg_catalog.pg_namespace n ON n.oid = pg_ts_dict.dictnamespace; 

Wenn ja, fügen Sie einfach Schemanamen, wie:

DROP TEXT SEARCH DICTIONARY public.english_stem; 
+0

Vielen Dank Vao. Es funktionierte! –

Verwandte Themen