[MySQL]trigger na delete |
[MySQL]trigger na delete |
17.05.2014, 06:49:12
Post
#1
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) |
Witam, Mam problem z pomysłem na trigger dla zapytań delete. Mam tabele histori, do której podczas update i insert wpadają dane. Chce dołożyć trigger na delete, ale nie wiem jak wtedy do tej tabeli zapisać kto usuwa dany rekord (id_user - wyciągany z sesji), w przypadku pozostałych dwóch typów zapytań nie ma problemu. Bo tu jest jednak zapis, ale z delete jak sobie poradzić to już nie wiem. Ma ktoś jakiś pomysł?
|
|
|
17.05.2014, 08:00:59
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
A jak to sobie wyobrazasz
Sesje ustawiasz w PHPie a triger wykonujesz w MySQL. (chyba więcej nie musze pisać) -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
17.05.2014, 08:06:03
Post
#3
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) |
To wiem, nie wiem po prostu jak przekazać do tego trrigera id_usera z sesji. jeżeli zapytanie na delete ma składnie:"DELETE FROM tabela WHERE cos =cos " to jak tu przekazać id_usera? Czy dopisywać inne zapytania i robić to w transackji? Nie mam pomysłu na wykoanie:(
|
|
|
17.05.2014, 08:10:59
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
Zamiast trigera zrob sobie funkcje preDelete lub postDelete w ktorej zrobisz sobie co tam chcesz.
Tak działają ORMy, warto zobaczyć jak to tam jest rozwiązane. Poczytaj sobie jako ciekawoste dlaczego ustawia się akcje w metodach post(insert|update|delete) lub pre(insert|update|delete). -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
17.05.2014, 08:20:33
Post
#5
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) |
Trochę nie wiem o czym do mnie piszesz:D
Mógłbyś bardziej to rozwinąć? Chyba jednak napiszę przed samym usunięciem rekordu update którym to wprowadze id_usera i potem wykonam dopiero delete. tylko że na update mam już też triggera i teraz zapisze się jedne niepotrzebny:( |
|
|
17.05.2014, 08:30:19
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
Masz sobie funkcje|metode do usuwania rekordow ktora wyglada jakos tak
zrob sobie 2 funkcje|metode ktora sie wykona przed wywolaniem tej funkcji|metody
i teraz wywolujac funkcje|metode zanim wywolasz delete wywolujesz preDelete i w tej metodize przenosisz sobie rekord do archiwum, a w delete usuwasz. http://propelorm.org/documentation/06-behaviors.html http://docs.doctrine-project.org/en/2.0.x/...nce/events.html zerknij sobie w te 2 linki moze podpowiedza Ci jakies rozwiazanie (na przyszlosc) -------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
17.05.2014, 08:40:18
Post
#7
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 26.10.2010 Ostrzeżenie: (0%) |
Czyli w tym przypadku zupełnie się rezygnuje z triggerów?
|
|
|
17.05.2014, 08:42:45
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 340 Pomógł: 542 Dołączył: 15.01.2006 Skąd: Olsztyn/Warszawa Ostrzeżenie: (0%) |
Tak. Wtedy nie musisz się martwić czy baza na ktorej operujesz zapewnia taka funkjonalność jak trigery, no i oczywiście dużo większe możliwości masz robiąc to po stronie PHPa
-------------------- I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy. QueryBuilder, Mootools.net, bbcradio1::MistaJam http://www.phpbench.com/ |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 01:35 |