Thursday, September 26, 2013

Perintah untuk Drop All Table di Postgresql

Jika kita ingin melakukan drop semua table di postgres terkadang agak sulit dilakukan, karena prostgre tidak menyediakan satu perintah untuk melakukan drop semua table.
Cara yang dapat dilakukan mungkin delete table satu persatu. Klik kanan pada tabel, kemudian pilib drop.
Tapi kadang sering error atau gagal delete, karena tabel itu mungkin ada dependency nya dengan tabel lain.
Misalnya salah satu field di tabel itu digunakan sebagai foreign key di tabel lain. Sehingga kita harus mendelete terlebih dahulu tabel yg memakai foreign key itu.
Tapi kalau tabelnya banyak jadi merepotkan juga.

Ada salah satu trik untuk mendelete semua tabel di database. Yakni membuat script drop tabel memakai sql query. Berikut ini scriptnya :

 select 'drop table "' || tablename || '" cascade;' as command   
 from pg_tables where schemaname = 'public';   

'public' ada nama schema yg kita ingin drop semua tabelnya.

Maka hasilnya adalah sebagai berikut :

 drop table "brand" cascade;  
 drop table "demands_files" cascade;  
 drop table "ip_type" cascade;  
 drop table "locations" cascade;  
 drop table "ip_history" cascade;  
 drop table "ip_list" cascade;  
 drop table "division" cascade;  
 drop table "developers" cascade;  
 drop table "material_elements" cascade;  
 drop table "device" cascade;  
 drop table "ip_region" cascade;  
 drop table "files_design" cascade;  
 drop table "files" cascade;  
 drop table "material_types" cascade;  
 drop table "partners" cascade;  
 drop table "typeproject" cascade;  
 drop table "regional_telkomsel" cascade;  
 drop table "telkom_divisions" cascade;  
 drop table "roles" cascade;  
 drop table "users" cascade;  
 drop table "material_list" cascade;  
 drop table "users_roles" cascade;  
 drop table "demand_status" cascade;  
 drop table "demands_estimates" cascade;  
 drop table "demands" cascade;  
 drop table "stos" cascade;  

Copy paste hasil query nya. Kemudian di run semua querynya.  Maka otomatis semua tabel akan terhapus atau terdrop.
Selamat mencoba :)


0 comments:

Post a Comment