Po co konwerter dialektów SQL?
Każda baza danych ma własną odmianę SQL. PostgreSQL używa `SERIAL` na klucz auto-inkrementowany, MySQL używa `AUTO_INCREMENT`, MSSQL używa `IDENTITY(1,1)`, Oracle `GENERATED AS IDENTITY`. Standard SQL jest tylko teorią, w praktyce każdy producent dorzucił własne rozszerzenia.
Wklejasz zapytanie z jednej bazy, wybierasz dialekt źródłowy i docelowy, a narzędzie zamienia różniące się konstrukcje: typy kolumn (TINYINT vs BOOLEAN vs BIT vs NUMBER(1)), klucze auto-inkrementowane, paginację (`LIMIT/OFFSET` vs `TOP` vs `FETCH NEXT`), funkcje czasu (`NOW()` vs `GETDATE()` vs `SYSDATE`), konkatenację stringów (`||` vs `CONCAT()`), cudzysłowy identyfikatorów (`` `id` `` vs `[id]` vs `"id"`).
Po prawej widzisz listę zastosowanych zmian z krótkim wyjaśnieniem, dlaczego coś zostało przepisane. To nie jest magia, tylko przyzwoita lista reguł, które pokrywają ~80% portowania prostych schematów.
Jak korzystać
- Wybierz dialekt źródłowy (z jakiej bazy pochodzi zapytanie) i docelowy (do jakiej bazy chcesz przenieść).
- Wklej zapytanie SQL do lewego pola. Może to być `CREATE TABLE`, `SELECT`, `INSERT`, cokolwiek.
- W prawym polu zobaczysz wynik konwersji, automatycznie sformatowany dla docelowego dialektu.
- Pod spodem masz listę dokonanych zmian: każda reguła z porównaniem "przed" i "po", razem z opisem.
- Skopiuj wynik przyciskiem Kopiuj. Sprawdź, czy logika jest zachowana (regex nie potrafi wszystkiego, czasem trzeba doszlifować ręcznie).
- Możesz zamienić źródło z celem przyciskiem ze strzałkami w lewo-prawo. Przydatne, kiedy chcesz przekonwertować w obie strony.
Do czego się przydaje
Najczęstsze scenariusze:
- Migracja z MySQL do PostgreSQL. Klasyk: firma rośnie, MySQL przestaje wystarczać, przechodzicie na Postgres. Schemat tabel trzeba przepisać. To narzędzie załatwia 80% rutyny.
- Wsparcie dwóch baz w jednym ORM-ie. Pracujesz z Prisma albo Drizzle, klient ma MSSQL, lokalnie używasz PostgreSQL. Trzeba mieć dwie wersje skryptu inicjalizacyjnego.
- Tworzenie BigQuery z istniejącej bazy operacyjnej. Schemat z MySQL trzeba dostosować do BigQuery, gdzie nie ma AUTO_INCREMENT i typów się dużo różni.
- Code review zapytania od kolegi, który pisze pod inny silnik. Szybko sprawdzasz, czy zadziała w Twojej bazie.
- Nauka różnic między dialektami. Wklej proste zapytanie, przełączaj dialekty docelowe i obserwuj, co się zmienia. Lepsze niż czytanie suchych dokumentacji.
- Test portability istniejącego schematu. Konwersja pokazuje, gdzie używasz konstrukcji specyficznych dla jednego producenta.
Po konwersji warto sformatować wynik, używając naszego formatera SQL. Jeśli chcesz schemat dla ORM-a, mamy konwerter SQL na ORM.