Jag har stött på ett mycket liknande problem för en tid sedan och kom på en mycket enkel lösning:ta bort från systemkatalogtabellen pg_description
direkt . Kommentarer är bara "bifogade" till objekt och stör inte på annat sätt.
DELETE FROM pg_description WHERE description = 'something special';
Friskrivningsklausul:
Det är farligt att manipulera katalogtabeller direkt och ett mått av sista utväg. Du måste veta vad du gör och du gör det på egen risk! Om du skruvar sönder kan du förstöra din databas (kluster).
Jag frågade om idén på pgsql-admin list och fick en uppmuntrande svar från Tom Lane :
> 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
Du bör se till att det inte finns några kommentarer du hellre vill behålla. Inspektera vad du ska radera först. Var medveten om att många inbyggda Postgres-objekt också har kommentarer.
Till exempel att bara ta bort alla kommentarer i tabellkolumner , kan du använda:
SELECT *
-- DELETE
FROM pg_description
WHERE objsubid > 0;
Handboken informerar om kolumnen objsubid
: