Składnia polecenia UPDATE zależy 				       od tego, w ilu tablicach dokonujemy zmiany danych. I tak: w przypadku jednej tablicy: (patrz Listing 1.0),   a w przypadku wielu tablic:(patrz Listing 2.0)     Za pomocą polecenia UPDATE możemy zmienić 					   zawartość kolumn w istniejących wierszach tablicy.  					   Słowo SET wskazuje, które kolumny będziemy 					   zmieniać oraz co będzie ich nową zawartością.  					   Jeśli w poleceniu UPDATE wpiszemy słowo WHERE to możemy określić, 					   w których wierszach dokonamy zmian, przy czym obowiązują tutaj  					   zwyczajne zasady wyboru odpowiednich wierszy, tak jak w innych 					   poleceniach SQL, a w szczególności w przypadku polecenia 					   SELECT. 					   Jeśli nie podamy opcji WHERE, wtedy  					   zostaną zmienione wszystkie wiersze (uwaga! niebezpieczne). 					   Podobnie działa opcja LIMIT; ogranicza 					   liczbę wierszy, które ulegną zmianie podczas wykonywania polecenia 					   UPDATE.     W przypadku słowa UPDATE możemy używać 					          następujących dwóch parametrów:   Polecenie UPDATE zapamiętuje bierzącą 					          (przed zmianą) wartość danej kolumny. Na przykład, jeśli chcemy 					          zwiększyć wartość kolumny o 2 to możemy wykonać następujące 					          polecenie:(patrz Listing 3.0)  Przypisania (po słowie SET są wykonywane 					          w poleceniu UPDATE od lewej do prawej. 					          W przykłaszie poniżej najpierw następuje pomnożenie wartości  					          kolumny przez 2, a dopiero później zwiększenie wartości kolumny o 1:(patrz Listing 4.0) Jeśli próbujemy nadać kolumnie nową wartość, która jest taka sama 						      jak poprzednia, to MySQL zasygnalizuje ten fakt. Jeśli zmieniamy kolumny, które przy definicji tablicy były zadeklarowane 						      jako NOT NULL wstawiając wartość 							  NULL, wtedy MySQL wstawia do takiej kolumny  							  wartość domyślną i wypisuje ostrzeżenie. Wartościami domyślnymi 							  są (chyba, że przy definicji struktury tablicy zaznaczono inaczej): 							  0 dla kolumn typu numerycznego, pusty string '' dla kolumn typu 							  znakowego, oraz wartość ``zero'' dla kolumn typu data i czas. Polecenie UPDATE zwraca liczbę wmienionych 						      rekordów (wierszy). Zaczynając od wersji 3.23 MySQLa możemy używać opcji  						      LIMIT liczba_wierszy w celu 							  ograniczenia liczby wierszy, które zmienimy poleceniem 							  UPDATE. Opcja  							  LIMIT liczba_wierszy działa następująco: Jeśli użyjemy opcji ORDER BY wtedy wiersze będą zmieniane w kolejności takiej jak podano  							  w to w tej opcji. Od wersji 4.04 MySQLa za pomocą jednego polecenia  						      UPDATE możemy zmieniać dane w kilku tablicach:(patrz Listing 5.0)   Uwaga. Przy poleceniu UPDATE działającym 							  na kilku tablicach, nie możemy używać opcji  							  ORDER BY i  							  LIMIT. Aby wykonać zmiany w tablicy musimy mieć odpowiednie przywileje 						      do dokonywania takich zmian. Kiedy chcemy zmienić dane w kilku tablicach typu  						      InnoDB, dla których zdefiniowane 							  są klucze klucze obce, wtedy najprawdopodobniej MySQL wykona 							  UPDATE w innej kolejności  							  niż wynikałoby to z relacji rodzic/dziecko. W takim wypadku  							  najprawdopodobniej polecenie UPDATE się nie powiedzie i dane nie zostaną zmienione. 							  W takich wypadkach lepiej jest zmienić dane w jednej tablicy 							  i polegać na możliwościach tablic typu InnoDB, 							  dzięki którym tablice z kluczami obcymi zostaną zmienione w sposób odpowiedni.
Listing
UPDATE
[LOW_PRIORITY] [IGNORE] nazwa_tab
SET nazwa_kol1=wyr1 [, nazwa_kol2=wyr2 ...]
[WHERE definicja_where]
[ORDER BY ...]
[LIMIT liczba_wierszy]
--Listing 2.0
UPDATE
[LOW_PRIORITY] [IGNORE] nazwa_tab1 [, nazwa_tab2 ...]
SET nazwa_kol1=wyr1 [, nazwa_kol2=wyr2 ...]
[WHERE definicja_where]
--Listing 3.0
UPDATE dane_personalne SET wiek=wiek+1;
--Listing 4.0
UPDATE dane_personalne SET wiek=wiek*2, wiek=wiek+1;
--Listing 5.0
UPDATE jednostki, miesiace SET jednostki.cena=miesiace.cena WHERE jednostki.id=miesiace.id;
Ranga: Administrator serwisu Punktów: 0



 
  
				

 
                             
 


 
                        
 
		 
	