Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator SQL UPDATE

Zbuduj zapytanie aktualizujące dane

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Podaj tabelę i przypisania, aby wygenerować zapytanie UPDATE.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator zapytania SQL UPDATE

Zapytanie UPDATE zmienia istniejące dane w tabeli. Największe ryzyko to pominięcie klauzuli WHERE — wtedy aktualizacji ulegną wszystkie wiersze.

Struktura zapytania

UPDATE tabela
SET kolumna1 = wartość1, kolumna2 = wartość2
WHERE warunek
LIMIT 1;

Bezpieczeństwo

  • Zawsze sprawdź warunek WHERE przed uruchomieniem.
  • Zrób kopię zapasową tabeli, zwłaszcza na produkcji.
  • Najpierw wykonaj SELECT z tym samym WHERE, aby zobaczyć, co zmienisz.
  • Użyj transakcji, aby móc wycofać zmiany w razie błędu.

Przykład

UPDATE users SET name = 'Jan Kowalski', email = '[email protected]' WHERE id = 1; zmieni dane tylko jednego użytkownika.

Jak działa generator zapytania UPDATE

Generator nie łączy się z żadną bazą danych i nie wykonuje zapytania. Działa w całości w przeglądarce: pobiera wartości z pól formularza i skleja z nich tekst polecenia UPDATE. Kolejność elementów jest zawsze taka sama — najpierw nazwa tabeli, potem lista przypisań SET, dalej warunek WHERE, a na końcu opcjonalne ograniczenie liczby wierszy. Niezależnie od tego, w jakiej kolejności wypełnisz pola, wynik zachowa poprawną składnię.

Drugi etap to rozróżnienie identyfikatorów od wartości. Nazwy tabel i kolumn trafiają do zapytania jako identyfikatory — w razie potrzeby w cudzysłowach, żeby działały nazwy ze spacjami albo pokrywające się ze słowami zarezerwowanymi. Wartości stają się literałami: tekst zamykany w apostrofach, liczby bez apostrofów, data również jako tekst. Dlatego kolumna typu liczbowego z wartością wpisaną w apostrofach może zostać potraktowana przez silnik inaczej, niż oczekujesz.

Trzeci etap to kontrola warunku. Pole WHERE jest obowiązkowe — bez niego narzędzie nie wygeneruje zapytania, bo UPDATE bez warunku dotyka całej tabeli. Wynik jest deterministyczny: te same dane wejściowe dają identyczny tekst, więc zapytanie można skopiować, zapisać w migracji i uruchomić później. Jeśli w wartości tekstowej występuje apostrof, trzeba go zdublować — zapis O''Brien zamiast O'Brien — inaczej silnik uzna, że tekst kończy się w połowie.

Przykład krok po kroku: wyzerowanie stanu pozycji wycofanych

  1. Tabela: magazyn, w której jest 1200 wierszy. Cel: wyzerować stan pozycji wycofanych i oznaczyć je datą zmiany.
  2. Do listy SET dodajesz dwie kolumny: stan = 0 (liczba, bez apostrofów) oraz aktualizacja = '2025-01-15' (tekst, w apostrofach). Generator połączy je przecinkiem: SET stan = 0, aktualizacja = '2025-01-15'.
  3. Warunek WHERE: kategoria = 'wycofane' AND stan > 0. Dwa warunki połączone operatorem AND zawężają zbiór do wierszy, które faktycznie wymagają zmiany.
  4. Przed uruchomieniem aktualizacji wykonujesz SELECT z tym samym warunkiem. Zwraca 7 wierszy — tyle pozycji zostanie zmienionych.
  5. Gotowe zapytanie: UPDATE magazyn SET stan = 0, aktualizacja = '2025-01-15' WHERE kategoria = 'wycofane' AND stan > 0 LIMIT 10;
  6. LIMIT 10 nie zadziała, bo warunek pasuje tylko do 7 wierszy — zmienionych zostanie 7. Gdyby limit wynosił 5, zmieniłoby się 5 wierszy, a pozostałe 2 pozostałyby nietknięte. Weryfikacja po wykonaniu: SELECT COUNT(*) FROM magazyn WHERE aktualizacja = '2025-01-15' zwraca 7.

Elementy zapytania UPDATE — ściągawka

ElementZa co odpowiadaNa co uważać
UPDATE tabelaWskazuje tabelę, w której mają zajść zmianyLiterówka w nazwie kończy się błędem wykonania, a nie cichą pomyłką
SET kolumna = wartośćLista przypisań rozdzielonych przecinkamiOstatnie przypisanie bez przecinka; przecinek zamiast kropki dziesiętnej w liczbach psuje wartość
WHERE warunekWybiera wiersze przeznaczone do zmianyBrak warunku oznacza aktualizację wszystkich wierszy w tabeli
LIMIT nOgranicza liczbę modyfikowanych wierszyObsługa zależy od silnika; bez klauzuli ORDER BY wybór wierszy jest nieokreślony
ORDER BYUstala kolejność, według której działa LIMITBez niej ten sam LIMIT może za każdym razem trafić w inne wiersze
Wartość tekstowaLiterał znakowy zapisany w apostrofachWewnętrzny apostrof trzeba podwoić, inaczej zapytanie się rozsypie
NULLOznacza brak wartościWarunek kolumna = NULL nigdy nie jest prawdziwy; stosuje się IS NULL
TransakcjaPozwala wycofać zmiany przed zatwierdzeniemPo COMMIT wycofanie wymaga już kopii zapasowej

Praktyczne wskazówki użycia

  • Zawsze zaczynaj od SELECT — wklej ten sam warunek WHERE do zapytania odczytu i policz wiersze. Jeśli liczba jest inna, niż zakładasz, popraw warunek przed generowaniem UPDATE.
  • Warunek opieraj na kluczu — WHERE po kolumnie z indeksem unikalnym (identyfikatorze) jest pewniejsze i szybsze niż filtrowanie po opisie czy dacie, gdzie łatwo trafić w sąsiedni rekord.
  • Jedna zmiana, jedno zapytanie — zamiast aktualizować hurtowo kilkaset wierszy, podziel operację na partie. Łatwiej wtedy namierzyć błąd i przerwać w połowie bez wstrzymywania całej tabeli.
  • Sprawdź typy przed uruchomieniem — kolumna liczbowa powinna dostać liczbę bez apostrofów, kolumna tekstowa wartość w apostrofach. Data bywa tekstem, ale format musi odpowiadać ustawieniom silnika.
  • Trzymaj zapytanie w wersjonowaniu — wygenerowany tekst wklej do pliku migracji z komentarzem, co i dlaczego zmienia. Za pół roku nikt nie odtworzy intencji z samego UPDATE.

Ograniczenia narzędzia

  • Brak połączenia z bazą — narzędzie nie zna struktury twoich tabel, typów kolumn ani ograniczeń (klucze obce, NOT NULL, CHECK). Nie powie ci, czy wartość przejdzie walidację.
  • Brak aktualizacji z innej tabeli — generator buduje proste UPDATE jednej tabeli. Złączenia w stylu JOIN albo podzapytanie w SET trzeba dopisać ręcznie.
  • Brak ustawień specyficznych dla silnika — sposób ograniczania liczby wierszy, cytowanie identyfikatorów i funkcje dat zależą od bazy. Wygenerowany tekst trzeba dostosować do MySQL, PostgreSQL czy SQL Server.
  • Brak walidacji semantycznej — narzędzie pilnuje składni i obecności WHERE, ale nie sprawdzi, czy warunek obejmuje właściwe wiersze. To nadal twoja odpowiedzialność i kopia zapasowa przed uruchomieniem.

Najczęstsze pytania

Co jeśli zapomnę WHERE?

Wszystkie wiersze zostaną zaktualizowane. Dlatego generator domyślnie wymaga warunku — to celowe zabezpieczenie.

Czy LIMIT działa w każdym silniku?

W MySQL/MariaDB tak. W PostgreSQL używa się klauzuli WHERE ctid IN (...) lub aktualizacji po kluczu. W SQL Server — TOP.

Jak wycofać zmiany?

Tylko jeśli pracowałeś w transakcji i wykonasz ROLLBACK. Po COMMIT potrzebna jest kopia zapasowa.

Jak zaktualizować kilka kolumn jednym zapytaniem?

Wypisz przypisania po SET, rozdzielając je przecinkami, na przykład SET stan = 0, aktualizacja = '2025-01-15'. Silnik wykona oba przypisania w ramach jednego wiersza i jednej operacji.

Jak ustawić różne wartości w różnych wierszach?

Użyj wyrażenia CASE wewnątrz SET, na przykład cena = CASE WHEN id = 1 THEN 10,50 WHEN id = 2 THEN 12,00 ELSE cena END. Wiersze spoza warunków zachowają dotychczasową wartość.

Czy UPDATE można połączyć z JOIN?

Tak, ale składnia jest różna. MySQL pozwala dopisać JOIN bezpośrednio po nazwie tabeli, PostgreSQL używa klauzuli FROM, a SQL Server klauzuli FROM z aliasem. To rozwiązanie poza zakresem generatora.

Jak zaktualizować kolumnę wartością z innej kolumny?

Po prawej stronie znaku równości możesz podać nazwę kolumny albo wyrażenie, na przykład SET cena = cena * 1,23. Wartość zostanie policzona na podstawie aktualnego wiersza, a nie wartości stałej.

Dlaczego UPDATE działa wolno?

Najczęstsza przyczyna to warunek WHERE bez indeksu — silnik musi przejrzeć całą tabelę. Drugi powód to blokady: długo otwarta transakcja blokuje wiersze, których dotyczą równoległe operacje.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!