![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 3.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jak zablokować zapis do tabeli MyISAM podczas UPDATE ?
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 62 Pomógł: 3 Dołączył: 10.09.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Trigger (wymagania administracyjnego uprawnienia "SUPER"):
(Wywołując tą komendę przez phpMyAdmin w okienku zapytania wybierz jako separator INNY ZNAK niż średnik ![]() NEW - wiersz zawierający zmienione update'm dane OLD - wiersz przed zmianami Działanie: Trigger (wyzwalacz) wywołuje się przed faktyczną zmianą danych w bazie poleceniem UPDATE ale po wywołaniu tego zapytania. W bazie będzie zapisany wiersz NEW zastępując stary wiersz OLD, więc wystarczy dane nowego wiersza przepisać ze starego i już - w efekcie nic w bazie się nie zmieni. Choć baza wykona UPDATE, to wykona go z takimi samymi danymi jakie już miała, niezależnie od tego się jakie dane poda się w samym zapytaniu UPDATE. Poleceniem SET wywołaj dla każdej kolumny która jest w tabeli, albo tylko dla tych kolumn które mają się nigdy nie zmienić. Miej na uwadze, że po założeniu triggera edycja danych przez phpMyAdmina też nie będzie działać, bo trigger przywróci poprzednie wartości. Ten post edytował prgTW 30.10.2007, 23:50:09 -------------------- Pozdrawiam
Tomasz Wójcik ..:: prgTW ::.. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.07.2025 - 08:23 |