Skrip ini akan menghasilkan perintah DDL untuk menghapus semuanya:
SELECT 'DROP TABLE ' || t.oid::regclass || ';'
FROM pg_class t
-- JOIN pg_namespace n ON n.oid = t.relnamespace -- to select by schema
WHERE t.relkind = 'r'
AND t.relname ~~ E'doors\_%' -- enter search term for table here
-- AND n.nspname ~~ '%myschema%' -- optionally select by schema(s), too
ORDER BY 1;
Pemeran t.oid::regclass
membuat sintaks berfungsi untuk pengidentifikasi kasus campuran, kata-kata yang dicadangkan atau karakter khusus dalam nama tabel juga. Ini juga mencegah injeksi SQL dan menambahkan nama skema jika perlu. Selengkapnya tentang jenis pengenal objek dalam manual
.
Tentang jalur penelusuran skema.
Anda juga dapat mengotomatiskan pelepasan, tetapi itu tidak bijaksana untuk tidak memeriksa apa yang sebenarnya Anda hapus sebelum melakukannya.
Anda dapat menambahkan CASCADE
untuk setiap pernyataan ke DROP tergantung objek (tampilan dan referensi kunci asing). Tapi, sekali lagi, itu tidak bijaksana kecuali Anda tahu betul apa yang Anda lakukan. Kendala kunci asing bukanlah kerugian besar, tetapi ini juga akan menghapus semua tampilan dependen sepenuhnya. Tanpa CASCADE
Anda mendapatkan pesan kesalahan yang memberi tahu Anda objek mana yang mencegah Anda menjatuhkan tabel. Dan Anda dapat mengatasinya.