Po zablokowaniu tabeli w określonej sesji inne sesje nie mogą odczytać ani zapisać do tabeli, chyba że blokada z sesji zostanie wydana. Dlatego wszystkie inne sesje są w trybie oczekiwania, aż zamek się zwolni.
Ten krótki przewodnik pokaże, jak wyświetlać dostępne zamki za pomocą polecenia listy procesów.
Jak zablokować stół
Aby uzyskać stan blokady w określonej tabeli, możesz użyć instrukcji blokady. Ogólna składnia dla tabel blokujących to:
MySQL> Tabele blokady tb_name [lock_type]W typu blokady możesz określić odczyt lub odczyt blokadę. Poniższy przykład ustawia blokadę zapisu w tabeli aktora.
Sakila Sakila.Aktor czytany;Po uzyskaniu blasku wszystkie pozostałe sesje nie zaktualizują żadnych danych przechowywanych w tabeli.
Na przykład następujące stwierdzenie nie powiedzie się, chyba że tabela zostanie odblokowana.
Włóż do Sakili.aktor (First_name, Last_name, Last_update) wartości („hello”, „świat”, current_date ());MySQL da ci błąd odczytu jako:
Błąd 1099 (HY000): Tabela „aktor” została zablokowana za pomocą blokady odczytu i nie można go zaktualizowaćJak odblokować stół
Aby odblokować tabelę, użyj zapytania do tabel odblokowania jako:
Mysql> Odblokuj tabele;Pokaż zablokowane tabele
Domyślnie nie ma ostatecznego sposobu, w jaki możesz zapytać o zablokowany stół jak: (Pokaż zablokowane tabele;).
Możemy jednak użyć polecenia Processlist, aby pokazać zablokowane tabele i użytkowników.
Użyj polecenia:
Pokaż listę procesów;Zrzuci to zarówno informacje, jak i zapytania czekające na zablokowanie.
Powyższy przykład pokazuje, że użytkownik root blokuje tabelę w tabeli aktorów.
Wniosek
Ten krótki samouczek pokazał, jak zablokować i odblokować tabele i wyświetlić użytkowników, którzy mają tabelę zablokowaną w bazie danych.