Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator SQL ALTER TABLE

Zmień strukturę tabeli

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";
}
Wybierz operację i podaj definicję, aby wygenerować zapytanie.

Oceń to narzędzie:

Powiązane narzędzia

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

Generator zapytania ALTER TABLE

Zapytanie ALTER TABLE zmienia strukturę istniejącej tabeli — bez utraty danych. To podstawowe narzędzie migracji i rozwoju schematu.

Operacje

OperacjaSkładnia
Dodaj kolumnęADD COLUMN nazwa TYP
Zmień kolumnęMODIFY COLUMN nazwa TYP
Usuń kolumnęDROP COLUMN nazwa
Zmień nazwęRENAME COLUMN stara TO nowa

Przykłady

ALTER TABLE users ADD COLUMN email VARCHAR(255) NOT NULL;
ALTER TABLE users DROP COLUMN email;
ALTER TABLE users RENAME COLUMN email TO mail;

Bezpieczeństwo

  • Zrób kopię zapasową przed zmianą struktury.
  • Na dużych tabelach ALTER może zablokować zapisy na długo.
  • Usunięcie kolumny nieodwracalnie kasuje dane.
  • Testuj migrację najpierw na kopii bazy.

Jak generator składa zapytanie ALTER TABLE

Generator działa jak kreator jednego zapytania: rozbija zmianę struktury tabeli na pojedyncze operacje, a potem składa je w jeden statement ALTER TABLE. Dla każdej operacji podajesz nazwę tabeli, rodzaj zmiany (dodanie, modyfikacja, usunięcie, zmiana nazwy kolumny), nazwę kolumny oraz typ danych. Pola opcjonalne, takie jak NOT NULL, DEFAULT czy UNIQUE, są doklejane do definicji kolumny w kolejności wymaganej przez składnię danego silnika.

Najważniejsza zasada: generator nie łączy się z bazą i nie odczytuje aktualnego schematu. Pracuje wyłącznie na tekście, który wpiszesz. Z listy operacji buduje klauzule rozdzielone przecinkami i domyka całość średnikiem. Kolejność klauzul odpowiada kolejności na liście i nie jest zmieniana, bo odwołania do nazw kolumn w dalszych klauzulach dotyczą stanu po operacjach wcześniejszych. Jeśli najpierw zmieniasz nazwę kolumny, a potem modyfikujesz jej typ, w drugiej klauzuli musisz użyć już nowej nazwy.

Składnia poszczególnych operacji różni się między silnikami. MySQL zmienia definicję kolumny słowem MODIFY COLUMN, a PostgreSQL przebudowuje kolumnę serią klauzul ALTER COLUMN, na przykład TYPE, SET NOT NULL albo SET DEFAULT. Generator stosuje wariant zgodny z wybranym dialektem, a gotowy tekst wklejasz do konsoli, klienta bazy albo pliku migracji.

Przykład krok po kroku: cztery operacje w jednym zapytaniu

  1. Ustaw tabelę docelową: users. Ta nazwa pojawi się bezpośrednio po słowach ALTER TABLE.
  2. Dodaj pierwszą operację: ADD COLUMN email VARCHAR(255) NOT NULL. Wartość 255 to długość typu, którą wpisujesz ręcznie — narzędzie jej nie wylicza.
  3. Dodaj drugą operację: MODIFY COLUMN phone VARCHAR(20). Zmieniasz definicję istniejącej kolumny, nie dodajesz nowej.
  4. Dodaj trzecią operację: RENAME COLUMN email TO mail. Od tego momentu kolumna nazywa się mail i tak trzeba się do niej odwoływać w dalszej części zapytania.
  5. Dodaj czwartą operację: DROP COLUMN old_field, czyli usunięcie kolumny, której już nie używasz.
  6. Odczytaj wynik. Cztery operacje dają cztery klauzule, czyli trzy przecinki między nimi i jeden średnik na końcu: ALTER TABLE users ADD COLUMN email VARCHAR(255) NOT NULL, MODIFY COLUMN phone VARCHAR(20), RENAME COLUMN email TO mail, DROP COLUMN old_field;

Tabela referencyjna: operacja a składnia w MySQL i PostgreSQL

OperacjaMySQLPostgreSQL
Dodanie kolumnyALTER TABLE t ADD COLUMN c TYPALTER TABLE t ADD COLUMN c TYP
Zmiana definicji kolumnyALTER TABLE t MODIFY COLUMN c TYPALTER TABLE t ALTER COLUMN c TYPE TYP
Usunięcie kolumnyALTER TABLE t DROP COLUMN cALTER TABLE t DROP COLUMN c
Zmiana nazwy kolumnyALTER TABLE t RENAME COLUMN a TO bALTER TABLE t RENAME COLUMN a TO b
Kolumna z wartością domyślnąADD COLUMN c TYP DEFAULT wADD COLUMN c TYP DEFAULT w
Kolumna wymaganaADD COLUMN c TYP NOT NULLADD COLUMN c TYP NOT NULL
Kilka operacji narazklauzule rozdzielone przecinkamiklauzule rozdzielone przecinkami

Jak używać generatora bez przykrych niespodzianek

  • Kolejność klauzul to nie kosmetyka — generator zachowuje kolejność z listy, więc zmianę nazwy kolumny ustaw wtedy, gdy dalsze operacje mają się już odwoływać do nowej nazwy.
  • Jedna migracja, jeden cel — zamiast wrzucać do jednego zapytania wszystko, co zaległo w schemacie, rozbij pracę na mniejsze pliki. Łatwiej wtedy znaleźć krok, który zawiódł.
  • Sprawdź nazwy przed uruchomieniem — generator niczego nie waliduje względem bazy, więc literówka w nazwie kolumny przejdzie do wyniku i dopiero silnik ją odrzuci.
  • Poprzedź zmianę zapytaniem sprawdzającym — przed modyfikacją typu wykonaj SELECT na próbce danych, żeby zobaczyć, jak wyglądają wartości skrajne i czy konwersja nie obetnie treści.
  • Trzymaj wygenerowany SQL w repozytorium — zapisany plik migracji jest jednocześnie dokumentacją zmian schematu i materiałem do odtworzenia środowiska od zera.

Czego generator nie zrobi za Ciebie

  • Nie zna stanu Twojej bazy — nie sprawdzi, czy kolumna już istnieje, czy nie ma konfliktu nazw ani czy tabela w ogóle jest w tej bazie. Zakłada, że dane wejściowe są poprawne.
  • Nie obsługuje wszystkich dialektów jednakowo — słowo MODIFY COLUMN istnieje w MySQL, ale w PostgreSQL odpowiednikiem jest ALTER COLUMN oraz TYPE. Wynik trzeba dopasować do konkretnego silnika.
  • Nie tworzy migracji odwrotnej — generator produkuje tylko zapytanie w przód. Skrypt przywracający poprzedni stan schematu musisz przygotować sam.
  • Nie analizuje danych w kolumnie — nie ostrzeże, że zmiana typu obetnie wartości albo że nowa kolumna NOT NULL bez wartości domyślnej zatrzyma się na istniejących wierszach.

Najczęstsze pytania

Czy MODIFY zachowuje dane?

Tak, o ile typ jest zgodny. Zmiana typu może jednak obciąć lub przekonwertować wartości — sprawdź to wcześniej.

Jak dodać kolumnę z wartością domyślną?

Dopisz DEFAULT wartość w definicji. Istniejące wiersze otrzymają tę wartość.

Czy ALTER jest transakcyjny?

W MySQL dla InnoDB większość operacji jest atomowa, ale całe ALTER może wymagać przebudowy tabeli. W PostgreSQL ALTER jest transakcyjny.

Czy generator obsługuje PostgreSQL?

Tak, o ile wybierzesz odpowiedni wariant składni. W PostgreSQL zmianę typu kolumny zapisuje się jako ALTER COLUMN c TYPE TYP, a nie przez MODIFY COLUMN znane z MySQL.

Jak dodać kilka kolumn jednym zapytaniem?

Dodaj kolejne operacje typu ADD COLUMN na liście. Generator połączy je przecinkami w jeden statement, więc baza wykona całość jako jedną zmianę struktury.

Czy można zmienić nazwę tabeli?

Narzędzie koncentruje się na kolumnach, więc operację RENAME COLUMN wykona poprawnie, ale zmianę nazwy samej tabeli trzeba dopisać ręcznie poza generatorem.

Jak zmienić typ kolumny w MySQL?

W MySQL użyj operacji MODIFY COLUMN z pełną nową definicją kolumny, razem z typem i długością. Sam typ bez reszty definicji może pominąć wcześniejsze atrybuty kolumny.

Czy zapytanie zadziała w SQLite?

Częściowo. SQLite ma ograniczony zestaw operacji ALTER TABLE i na starszych wersjach nie obsługuje usuwania ani zmiany nazwy kolumny, więc wynik trzeba zweryfikować przed uruchomieniem.

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