PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menghapus COMMENT ON dari semua objek di PostgreSQL

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 :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Gunakan kembali nilai pilih yang dihitung

  2. Panduan Pakar untuk Replikasi Slony untuk PostgreSQL

  3. Pilih sel non-null pertama dari dua kolom di PostgreSQL

  4. Mengubah Tabel dengan perintah Pengerjaan Ulang Sqitch

  5. Apakah mungkin menggunakan variabel dan tidak menentukan tipe pengembalian di postgreSQL?