Saya telah menghadapi masalah yang sangat mirip beberapa waktu lalu dan menemukan solusi yang sangat sederhana:hapus dari tabel katalog sistem pg_description
langsung . Komentar hanya "dilampirkan" ke objek dan tidak mengganggu sebaliknya.
DELETE FROM pg_description WHERE description = 'something special';
Penafian:
Memanipulasi tabel katalog secara langsung berbahaya dan langkah terakhir. Anda harus tahu apa yang Anda lakukan dan Anda melakukannya dengan risiko Anda sendiri! Jika Anda mengacaukannya, Anda dapat mengacaukan database (cluster) Anda.
Saya bertanya tentang ide pada daftar pgsql-admin dan mendapatkan mendorong jawaban dari 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
Anda harus memastikan bahwa tidak ada komentar yang ingin Anda simpan. Periksa apa yang akan Anda hapus terlebih dahulu. Ketahuilah bahwa banyak objek Postgres bawaan memiliki komentar juga.
Misalnya, untuk hanya menghapus semua komentar di kolom tabel , Anda dapat menggunakan:
SELECT *
-- DELETE
FROM pg_description
WHERE objsubid > 0;
Manual menginformasikan tentang kolom objsubid
: