Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie widokow za pomoca Trigera
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
usiek1984
Czesc

Wiecie moze jak zrobic cos takiego:

Mam jakas tablice np. tab1 i w oparciu o nia jest utworzony jakis
widok. view1 Chodzi o znalezenie sposobu na to ze jesli zmieni sie nazwa tablicy tab1
na jakas inna to silnik PostgreSql automatycznie usunie widok. Mam to wykonac za pomoca Trigera z wykorzystaniem precedury w plpgsql. Co wiecej z tego co zdazylem obczaic to musze wykorzystac tablice systemowe . Poprostu chce zrobic cos takiego ze jak zmienie sobie nazwe tabeli to triger usunie mi wszystkie widoki bo ten widok juz bedzie bezuzyteczny bo nie ma juz takiej nazwy tabeli.

Prosze o pomoc. Dzieki
Sedziwoj
Zrób
  1. ALTER TABLE <stara_nazwa> RENAME TO <nowa_nazwa>;
a potem zobacz sobie jeszcze raz widoki...
usiek1984
Czesc

Jesli zmienie nazwe tabeli to potem widkok dalej istnieje,jak teraz mam go usunac, poza tym ma to sie dziac automatycznie,to znaczy w momencie jesli robie alter table to usuwam widoki jesli nazwa tabeli juz jest inne(w porownaniu do poczatkwoej nazwy tabeli). Trzeba uzyc tutaj chyba Trigerow, tak samo chyba nalezy uzyc tabel systemowych w celu pobrania nazw widokow ktroe istnieja dla danej tabeli.
Zbłąkany
Usiek ciekawe, jak zamierzasz wywołać trigger po zmianie nazwy tabeli winksmiley.jpg Podpowiadam: to jest niemożliwe tongue.gif Jedyne rozwiązanie, które mi przychodzi na myśl to użycie crona. Powiedzmy co 5 minut odpalasz skrypt, który wszystko pozmienia za Ciebie (dodajesz zmianę nazwy tabeli z aaa na bbb do kolejki i czekasz aż się wykona) smile.gif
Sedziwoj
@Zbłąkany
A ja sugeruję że usuwanie jest bez sensu, bo widoki są automatycznie poprawiane pod względem nazw, więc ciągle działają, więc nie widzę najmniejszego sensu aby je usuwać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.