Jeg har stået over for et meget lignende problem for noget tid siden og fandt på en meget enkel løsning:slet fra systemkatalogtabellen pg_description
direkte . Kommentarer er bare "vedhæftet" til objekter og forstyrrer ellers ikke.
DELETE FROM pg_description WHERE description = 'something special';
Ansvarsfraskrivelse:
Det er farligt at manipulere katalogtabeller direkte og et mål for sidste udvej. Du skal vide, hvad du laver og du gør det på eget ansvar! Hvis du skruer op, kan du ødelægge din database (cluster).
Jeg spurgte om ideen på pgsql-admin list og fik en opmuntrende svar fra 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 sikre dig, at der ikke er nogen kommentarer, du hellere vil beholde. Undersøg, hvad du vil slette først. Vær opmærksom på, at mange indbyggede Postgres-objekter også har kommentarer.
For eksempel kun at slette alle kommentarer til tabelkolonner , kan du bruge:
SELECT *
-- DELETE
FROM pg_description
WHERE objsubid > 0;
Manualen informerer om kolonnen objsubid
: