sql >> Databasteknik >  >> RDS >> PostgreSQL

Tar bort COMMENT ON från alla objekt i PostgreSQL

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 :



  1. Hur konfigurerar man Hibernate, Spring och Apache dbcp för anslutningspoolning?

  2. PDO-felsökning - Visa fråga EFTER Bind?

  3. SQL-fel:0, SQLState:08S01 Kommunikationslänkfel

  4. Logga in med externa tjänster