Korzystanie z trybu bezpiecznej aktualizacji MySQL

Korzystanie z trybu bezpiecznej aktualizacji MySQL
Dane tabeli bazy danych MySQL mogą wymagać aktualizacji lub usunięcia w dowolnym momencie na podstawie wymagań. Jeśli aktualizacja lub usunięcie zapytania zostanie wykonane bez korzystania z klauzuli Where, wszystkie rekordy tabeli zostaną zaktualizowane lub usunięte przypadkowo. Jeśli tryb bezpiecznej aktualizacji jest włączony, kod błędu MySQL 1175 zostanie wygenerowany, jeśli zapytanie aktualizacji lub usunięcia zostanie wykonywane bez użycia klauzuli Where. Ale czasami wymaga usunięcia wszystkich rekordów tabeli lub aktualizacji wszystkich wartości określonej kolumny tabeli. Problem ten można rozwiązać, wyłączając tryb bezpiecznej aktualizacji lub wykonywanie zapytania z klauzulą, która będzie pasować do wszystkich wierszy tabeli. Sposób włączenia lub wyłączenia trybu bezpiecznej aktualizacji w celu zapobiegania przypadkowemu usunięciu lub aktualizacji został pokazany w tym samouczku.

Wymagania wstępne:

Musisz utworzyć tabelę bazy danych z danymi w bazie danych MySQL, aby sprawdzić użycie trybu bezpiecznej aktualizacji w MySQL.

Otwórz terminal i połącz się z serwerem MySQL, wykonując następujące polecenie.

$ sudo mysql -u root

Uruchom następujące polecenie, aby utworzyć nazwaną bazę danych test_db.

Utwórz bazę danych test_db;

Uruchom następujące polecenie, aby wybrać bazę danych.

Użyj test_db;

Uruchom następujące zapytanie, aby utworzyć tabelę o nazwie klienci z pięcioma polami.

Klientowalni klienci (
Id intnot zerowy klucz podstawowy,
Nazwa varchar (30) nie null,
e -mail varchar (50),
tekst adresu,
contact_no varchar (15));

Uruchom następujące zapytanie wstaw, aby wstawić cztery rekordy do klienci tabela.

Wstaw do „Klienci” („id”, „nazwa”, „e -mail”, „adres”, „contact_no”) wartości)
(„4001”, „Laboni Sarkar”, „[email protected] ', '34, Dhanmondi 9/a, Dhaka.', „01844767234”),
(„4002”, „Tahsin Ahmed”, „[email protected] ',' 123/1, Jigatola, Dhaka.', „015993487812”),
(„4003”, „Hasina Pervin”, „[email protected] ',' 280, Shantibagh, Dhaka.', ZERO),
(„4004”, „Mehrab Ali”, „[email protected] ', '78, Paltan, Dhaka…', „01727863459 ');

Sprawdzanie bieżącej wartości trybu aktualizacji bezpiecznej:

SQL_SAFE_UPDATES Zmienna służy do włączenia lub wyłączenia trybu bezpiecznej aktualizacji MySQL. Tryb aktualizacji bezpiecznej jest domyślnie wyłączony. Uruchom następujące polecenie z monitu MySQL, aby sprawdzić bieżącą wartość SQL_SAFE_UPDATES zmienny.

Pokaż zmienne takie jak „SQL_SAFE_UPDATES”;

Poniższe wyjście pokazuje, że tryb bezpiecznej aktualizacji jest wyłączony.

Wykonaj polecenie aktualizacji i usuń po włączeniu trybu aktualizacji bezpiecznej:

Uruchom następujące polecenia, aby włączyć tryb bezpiecznej aktualizacji i sprawdź wartość SQL_SAFE_UPDATES zmienny.

SET SQL_SAFE_UPDATES = 1;
Pokaż zmienne takie jak „SQL_SAFE_UPDATES”;

Poniższe wyjście pokazuje, że tryb bezpiecznej aktualizacji jest teraz włączony.

Wykonaj zapytanie o aktualizację:

Uruchom polecenie aktualizacji bez klauzuli, aby sprawdzić tryb bezpiecznej aktualizacji, lub nie dla operacji aktualizacji. Jeśli tryb bezpiecznej aktualizacji jest włączony, błąd 1175 zostanie wygenerowany dla zapytania aktualizacji.

Aktualizacja klientów Ustaw kontakt_no = '02 -458934679 ';

Poniższe dane wyjściowe pokazuje błąd wygenerowany dla zapytania o aktualizację bez klauzuli i nie przeprowadzono żadnej operacji aktualizacji.

Załóżmy, że powyższe zapytanie zostanie wykonane z dowolnego graficznego interfejsu użytkownika, takiego jak phpMyAdmin, gdzie tryb bezpiecznej aktualizacji jest domyślnie wyłączany. W takim przypadku operacja aktualizacji zostanie wykonana na podstawie zgody użytkownika. Jeśli użytkownik udziela zezwolenia, to Contact_no pole wszystkich zapisów klienci Tabela zostanie zaktualizowana; W przeciwnym razie nic nie zostanie zrobione.

Wykonaj zapytanie Usuń:

Uruchom polecenie Usuń bez klauzuli, aby sprawdzić tryb bezpiecznej aktualizacji, lub nie dla operacji usuwania. Jeśli tryb bezpiecznej aktualizacji jest włączony, błąd 1175 zostanie wygenerowany dla zapytania o usunięcie, tak jak zapytanie o aktualizację.

Usunąć od klientów;

Poniższe dane wyjściowe pokazuje błąd wygenerowany dla zapytania Usuń bez klauzuli i nie przeprowadzono żadnej operacji usuwania.

Załóżmy, że powyższe zapytanie o usunięcie zostanie wykonane z dowolnego graficznego interfejsu użytkownika, takiego jak phpMyAdmin, gdzie tryb bezpiecznej aktualizacji jest domyślnie wyłączany. W takim przypadku operacja usunięcia zostanie wykonana w oparciu o zgodę użytkownika, podobnie jak zapytanie o aktualizację. Jeśli użytkownik udziela uprawnień, to wszystkie rekordy klienci Tabela zostanie usunięta; W przeciwnym razie nic nie zostanie zrobione.

Wykonaj polecenie aktualizacji i usuń po wyłączeniu trybu aktualizacji bezpiecznej:

Uruchom następujące polecenia, aby wyłączyć tryb bezpiecznej aktualizacji i sprawdź wartość SQL_SAFE_UPDATES zmienny.

SET SQL_SAFE_UPDATES = 0;
Pokaż zmienne takie jak „SQL_SAFE_UPDATES”;

Poniższe wyjście pokazuje, że tryb bezpiecznej aktualizacji jest teraz wyłączony.

Podobnie jak poprzednie polecenie aktualizacji, uruchom następujące polecenie aktualizacji bez klauzuli, aby sprawdzić operację aktualizacji, czy nie po wyłączeniu trybu aktualizacji bezpiecznej.

Zaktualizuj Klienci Ustaw adres = „dhaka”;

Poniższe dane wyjściowe pokazuje, że operacja aktualizacji została zakończona bez żadnego błędu, a cztery rzędy klienci dotknięto stołu.

Uruchom następujące zapytanie Wybierz, aby sprawdzić bieżącą zawartość klienci tabela.

Wybierz * od klientów;

Poniższe dane wyjściowe pokazuje, że wartość ciągu zaktualizowała wszystkie wartości pola adresu ”Dhaka '.

Podobnie jak poprzednie polecenie Usuń, uruchom następujące polecenie Usuń bez klauzuli, aby sprawdzić operację Usuń działa lub nie po wyłączeniu trybu aktualizacji bezpiecznej.

Usunąć od klientów;

Poniższe dane wyjściowe pokazuje, że operacja usunięcia została zakończona bez błędu.

Uruchom następujące zapytanie Wybierz, aby sprawdzić bieżącą zawartość klienci tabela.

Wybierz * od klientów;

Poniższe dane wyjściowe pokazuje, że wszystkie rekordy klienci stół został usunięty.

Wniosek:

Tryb bezpiecznej aktualizacji MySQL jest niezbędną funkcją, aby zapobiec niepożądanym aktualizacjom lub przez pomyłkę usuwa operacje. Sposób włączenia i wyłączenia tego trybu poprzez ustawienie wymaganej zmiennej został pokazany w tym samouczku. Jak pokazano tutaj operacje aktualizacji i usuwania bez klauzuli w oparciu o tryb bezpiecznej aktualizacji.