![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 24.08.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Potrzebuję Trigger'a (chyba tak to się nazywa), który robiłby taką coś: Gdy ktoś rejestruje się na forum MyBB - czyli zostaje dodany rekord do tabeli mybb_users, trigger reaguje i dopisuje tego samego użytkownika (rekord) do innej tabeli. Tak, abym mógł zainstalować większą ilość for na jednej bazie danych, aby na wszystkich forach byli Ci sami użytkownicy. Przypuśćmy jedna tabela z ludźmi to: mybb_users, a druga to mybb1_users, kolejna mybb2_users itp. itd. Jak to zrobić? Pozdrawiam! calif |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
@cojack - nie
Jeśli założysz te wyzwalacze na każdą modyfikowaną tabelę to gwarantuje ci że każde zapytanie na nich zwróci ci błąd. Choćby dlatego że procedura będzie próbowała zmodyfikować tabelę na której został postawiony wyzwalacz. Z kolei modyfikowanie każdego wyzwalacza osobno by modyfikował wszystkie sąsiednie tabele jest trochę bez sensu. Trochę sobie to przetestowałem i wyszło mi że najwygodniejszym rozwiązaniem będzie łańcuchowanie zdarzeń - czyli dla 3 tabel - modyfikacja np. tabeli 2 wyzwala akcję na tabeli 3, tabela 3 na 1 - 1 sprawdza że rekord istnieje na 2, więc łańcuch się kończy. Każdy insert,update,delete jest propagowany na sąsiednie tabele dzięki czemu powinny one zachować spójność. Dla większej ilości tabel triggery można generować np. za pomocą PHPa. Pozostaje pytanie o wydajność takiego rozwiązania. Przykładowe wyzwalacze na insert dla 3 tabel - tu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 21:05 |