Jakiś czas temu spotkałem się z bardzo podobnym problemem i wymyśliłem bardzo proste rozwiązanie:usuń z tabeli katalogu systemowego pg_description
bezpośrednio . Komentarze są po prostu „dołączane” do obiektów i nie przeszkadzają w inny sposób.
DELETE FROM pg_description WHERE description = 'something special';
Zastrzeżenie:
Bezpośrednia manipulacja tabelami katalogu jest niebezpieczna i środek ostateczny. Musisz wiedzieć, co robisz i robisz to na własne ryzyko! Jeśli schrzanisz, możesz schrzanić swoją bazę danych (klaster).
Zapytałem o pomysł na liście pgsql-admin i dostałem zachęcająca odpowiedź od Toma Lane'a :
> DELETE FROM pg_description WHERE description = 'My very special
> totally useless comment.';
> AFAICS, there are no side-effects. Are there any?
It's safe enough, as long as you don't delete the wrong comments.
There's no hidden infrastructure for a comment.
regards, tom lane
Powinieneś upewnić się, że nie ma żadnych komentarzy, które wolałbyś zachować. Najpierw sprawdź, co zamierzasz usunąć. Pamiętaj, że wiele wbudowanych obiektów Postgres również ma komentarze.
Na przykład, aby tylko usunąć wszystkie komentarze w kolumnach tabeli , możesz użyć:
SELECT *
-- DELETE
FROM pg_description
WHERE objsubid > 0;
Podręcznik informuje o kolumnie objsubid
: