/ / "Pułapki" Polecenia DML Aktualizuj MySQL

"Pułapki" polecenia DML Zaktualizuj MySQL

Każdy programista, który musiał pracować z bazami danych, spotykał się z operatorami DML (za. z angielskiego - „język manipulacji danymi”), np Wybierz, Wstawić, Kasować i Aktualizacja. Środowisko MySQL wykorzystuje również wszystkie powyższe polecenia w swoim arsenale.

Te operatory logicznie mówią o swoichprzypisanie - wybór rekordów, wprowadzenie nowych wartości, aktualizacja istniejących danych, kompletne lub według określonych warunków, usunięcie informacji w bazie danych. W szkoleniowych materiałach teoretycznych szczegółowo opisano zasadę działania każdego polecenia oraz ich składnię, jednak nigdzie nie ma wzmianki o trudnościach, jakie mogą się pojawić w praktyce podczas użytkowania. W tym materiale omówimy niektóre z nich.

mysql insert update select

Operatory DML w skrócie (wstawianie)

Zanim przejdziemy dalej, należy jeszcze raz bardziej szczegółowo przypomnieć o przeznaczeniu każdej z funkcji. Bardziej będziemy zainteresowani dwoma operatorami: Wstawić i Aktualizacja, ponieważ to od nich wynikają główne trudności przy przetwarzaniu dużych ilości danych.

Aktualizacja wstawiania mysql

Musisz zacząć od polecenia Wstawić, a następnie płynnie przejdź do Aktualizacja. MySQL system, jak każdy inny nowoczesny DBMS, wykorzystuje tę operację Wstawić aby dodać nowe wpisy do istniejącychtabele bazy danych. Składnia tej operacji jest bardzo prosta i nieskomplikowana. Zawiera wyliczenie pól, w których zostaną wprowadzone wartości, miejsce docelowe - nazwę tabeli - oraz samą listę wprowadzonych danych. Za każdym razem, gdy uruchamiasz polecenie Wstawić baza danych zostanie zaktualizowana o nowe wartości.

Zaktualizuj oświadczenie

Jednak w praktyce dość często sąsytuacje, w których dla określonego zbioru danych konieczna jest aktualizacja co najmniej jednej wartości atrybutu. Jako przykład można przytoczyć sytuację, w której przedsiębiorstwo przeszło reformę wraz z dalszą przemianą głównych działów. W takim przypadku konieczne jest wprowadzenie zmian dla każdego działu. Jeśli zmienią się tylko nazwy, problem zostanie rozwiązany bardzo szybko. Ale jeśli zmienia się kodowanie każdego komponentu całej produkcji, które z reguły służy jako klucz podstawowy, to z kolei pociąga za sobą zmiany w informacjach i dla każdego pracownika.

zaktualizuj mysql

Aby rozwiązać rozważany problem, można się zgłosić Operator DML - Aktualizacja. MySQL-serwer działający z dużą liczbą rekordów,za pomocą instrukcji aktualizacji wykona żądane żądanie i rozwiąże problem. Ale czasami podczas aktualizacji pojawiają się trudności, które nie są do końca jasne i trudne do wyjaśnienia. Chodzi o to, jakie trudności powoduje aktualizacja rekordów, które zostaną omówione poniżej.

Niewiele mówi się w teorii ...

Polecenie Aktualizuj, jak wspomniano powyżej,służy do aktualizacji istniejących rekordów w tabeli. Jednak w praktyce klienci uzyskujący dostęp do serwerów baz danych nie zawsze wiedzą, czy określony zestaw danych istnieje w tabelach, czy nie. Wstępne sprawdzenie dostępności danych w bazie danych do kolejnych aktualizacji prowadzi do kosztów czasu i zmarnowania możliwości serwera.

Aby temu zapobiec, DBMS zapewnia specjalny projekt MySQL - Wstaw * Aktualizacjaw którym wstawka lub aktualizacja możedziałać niezależnie od siebie. Oznacza to, że jeśli w tabeli znajduje się rekord dotyczący określonego stanu, nastąpi aktualizacja. Jeśli dla danego warunku nie zostaną znalezione żadne dane, serwer MySQL będzie mógł wykonać żądanie dodania danych.

Aktualizowanie danych w przypadku duplikatów

Ważny element tego Wstawić-zapytanie w systemie zarządzania bazą danych MySQL - „Przy zduplikowanej aktualizacji klucza” konsola. Pełna składnia żądania jest następująca: „wstaw do test_table (identyfikator_pracodawcy, nazwa) wartości (1, „Abramov”) przy zduplikowanej aktualizacji klucza last_modified = NOW ();„.

MySQL przy zduplikowanej aktualizacji klucza

Taka prośba może zostać wykorzystanarejestracja działań pracowników, na przykład ustalenie czasu przekroczenia punktu kontrolnego przedsiębiorstwa, a następnie zliczanie czasu przerwy i identyfikacja opóźnień. Aby nie dokonywać kilku wpisów w tabeli, wystarczy prowadzić ewidencję dla każdego pracownika z ciągłą aktualizacją. Umożliwia to zduplikowany projekt czeku.

Właściwie o problemach ...

Biorąc pod uwagę powyższy przykład rejestrowania działań pracowników w punkcie kontrolnym, zastosowanie samowystarczalności (automatyczny_przyrost) pola, które są często używane do wypełniania wartości klucza podstawowego (podstawowy_klucz). Podczas korzystania z polecenia Aktualizacja MySQL w budowie z Wstawić automatyczny_przyrost, pola stale się powiększają.

Podobnie wszystko dzieje się, gdyW przypadku znalezienia duplikatów używana jest konstrukcja zastępująca. Wartość „autoinkrementacji” jest zwiększana nawet wtedy, gdy nie jest to konieczne. Z tego powodu występują problemy z brakującymi wartościami lub przepełnieniem zakresu, co w konsekwencji prowadzi do nieprawidłowego działania systemów zarządzania bazami danych.

Najprawdopodobniej spowoduje problem

Należy wziąć pod uwagę opisany problem Sieć- programiści, ponieważ najczęściej występuje w systemach wieloużytkownikowych (strony internetowe, portale itp.), gdy w systemie wykonywana jest duża liczba procedur Wstawić i Zaktualizuj MySQL.

PHP-baza danych jest bardzo często używana. Dlatego osiągnięcie maksymalnej wartości przez pola zdefiniowane jako auto_incrementdzieje się szybko, a analizując pojawiające się trudności, nie będzie możliwe natychmiastowe ustalenie przyczyn.

 zaktualizuj mysql php

Dlatego zaleca się deweloperom ostrożne podejście do użytkowania konstrukcji na zduplikowanym kluczu w zespole aktualizacja mysql. Wybierz - zapytania podczas uzyskiwania dostępu do serwera bazy danychbędzie działać bez błędów, ale dodawanie nowych rekordów do bazy danych jest obarczone nieprzyjemnymi sytuacjami, które następnie prowadzą do poważnych problemów. Alternatywnie, zaleca się, aby pola automatycznie zwiększały wartość, aby najpierw sprawdzić, czy istnieją dla nich rekordy, a następnie je zaktualizować.