Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wymazanie bazy., Jak?
Blackhole
post 17.07.2005, 15:48:36
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Jak szybko (jedną instrukcją) można wykasować wszystkie własne tabele z bazy nie kasując samej bazy?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
Jabol
post 17.07.2005, 20:13:43
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


najpierw znajdź sobie oid interesującego Cię schematu poprzez takie zapytanie.
  1. SELECT *,oid
  2. FROM pg_catalog.pg_namespace;
Potem wystarczy już tylko usunąć:
  1. DELETE
  2. FROM pg_class WHERE relnamespace={id} AND relkind = 'r'::"char";
A jeżeli chcesz usunąc wszystkie tabele to z całej bazy danych to lepiej usuń bazę danych i stwórz ją od nowa bo jak usuniesz również tabele systemowe ze schematu pg_catalog to nie będziesz już miał czego szukać.
Aha, i jak już będziesz tak usuwał to radzę też usunąć wszystkie indexy i takie tam, które się z tabelami łączą. Nie wiem czy dodanie CASCADE coś da, bo tą metodę dopiero co eksperymentalnie wymyśliłem. Dlatego hint -> indexy to po prostu dajesz 'i' zamiast 'r' przy relkind (ale takie drobnostki jestem pewien już sobie sam rozpracujesz - wystarczy się przyjrzeć tabeli pg_class oraz widokowi pg_tables)..

AAAAAAAAAAA: NIE RÓBCIE TEGO. WŁASNIE ZAUWAŻYŁEM, ŻE NIE DZIAŁA ://// (jeżeli chcecie się przekonać jak to spórbujcie po zrobieniu tego załadować tabelę, która już istniała :/).

Ten post edytował Jabol 20.07.2005, 22:33:59
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:54