sql >> Databáze >  >> RDS >> PostgreSQL

Odebírání COMMENT ON ze všech objektů v PostgreSQL

Před časem jsem čelil velmi podobnému problému a přišel jsem s velmi jednoduchým řešením:odstranit z tabulky systémového katalogu pg_description přímo . Komentáře jsou pouze "připojeny" k objektům a jinak nezasahují.

DELETE FROM pg_description WHERE description = 'something special';

Prohlášení:
Přímá manipulace s katalogovými tabulkami je nebezpečná a opatření poslední instance. Musíte vědět, co děláte a děláte to na vlastní nebezpečí! Pokud to pokazíte, můžete pokazit svou databázi (shluk).

Zeptal jsem se na tento nápad na seznamu pgsql-admin a dostal jsem povzbudivá odpověď od Toma Lanea :

> 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

Měli byste se ujistit, že zde nejsou žádné komentáře, které byste si raději ponechali. Nejprve si zkontrolujte, co se chystáte smazat. Uvědomte si, že mnoho vestavěných objektů Postgres má také komentáře.

Chcete-li například pouze smazat všechny komentáře ve sloupcích tabulky , můžete použít:

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

Manuál informuje o sloupci objsubid :



  1. Přehled úkolů Nejnovější služba monitorování databáze – Spotlight Cloud

  2. Úvod do SQL

  3. Jak aktualizovat záznam pomocí sequelize pro uzel?

  4. Jak seskupovat a počítat podle dne v Rails v Postgresu?