PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Премахване на COMMENT ON от всички обекти в PostgreSQL

Сблъсках се с много подобен проблем преди известно време и измислих много просто решение:изтриване от таблицата на системния каталог pg_description Директната . Коментарите са просто „прикачени“ към обекти и не пречат по друг начин.

DELETE FROM pg_description WHERE description = 'something special';

Отказ от отговорност:
Манипулирането на каталожни таблици директно е опасно и крайна мярка. Трябва да знаете какво правите и го правите на свой собствен риск! Ако се прецакате, може да прецакате вашата база данни (клъстер).

Попитах за идеята в pgsql-admin list и получих окуражаващ отговор от Том Лейн :

> 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

Трябва да се уверите, че няма коментари, които предпочитате да запазите. Първо проверете какво ще изтриете. Имайте предвид, че много вградени обекти на Postgres също имат коментари.

Например само за изтриване на всички коментари в колоните на таблицата , можете да използвате:

SELECT *
-- DELETE
FROM   pg_description
WHERE  objsubid > 0;

Ръководството информира за колоната objsubid :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Показване на всички резултати в postgresql?

  2. Как си взаимодействат прозоречните функции и групата по клауза?

  3. Как да свържете докер контейнери при изграждане?

  4. SQL функцията е много бавна в сравнение със заявка без обвивка на функция

  5. Обединяване на масиви в група по клауза