Конвертер диалектов SQL
Переписывайте SQL между синтаксисом PostgreSQL, MySQL, SQLite и SQL Server.
Конвертер диалектов SQL
Вставьте запрос, написанный для одной базы данных, и получите его переписанным для другой. Конвертер охватывает синтаксис ограничения строк, распространённые функции даты и строк, конкатенацию строк, кавычки идентификаторов и типы столбцов между PostgreSQL, MySQL, SQLite и SQL Server — полезно при миграции проекта с MySQL на PostgreSQL, адаптации скрипта, написанного для SQL Server, к SQLite, или просто проверке, как запрос будет выглядеть в другом движке.
Исходный диалект и целевой диалект выбирают оба конца преобразования. Флажки ниже включают и выключают отдельные преобразования: нормализация кавычек идентификаторов заменяет двойные кавычки, обратные кавычки и квадратные скобки на собственный стиль целевой БД; преобразование предложения LIMIT переключается между LIMIT, TOP и OFFSET…FETCH FIRST без потери смещения; преобразование функций даты и строк переписывает NOW()/GETDATE()/datetime('now'), LENGTH()/LEN(), SUBSTRING()/SUBSTR() и COALESCE()/IFNULL()/ISNULL(); преобразование конкатенации строк переключается между || и CONCAT()/+; преобразование типов столбцов отображает SERIAL, AUTO_INCREMENT, IDENTITY(1,1), BOOLEAN, TEXT и объявления в стиле TIMESTAMP на их ближайшие эквиваленты. Сохранение комментариев контролирует, выживают ли комментарии -- и /* */ при переписывании.
Некоторые конструкции не имеют настоящих эквивалентов — PostgreSQL's RETURNING и ON CONFLICT, или MySQL's ON DUPLICATE KEY UPDATE — и вместо того, чтобы угадывать переписывание, инструмент оставляет их на месте и перечисляет в блоке предупреждений, добавленном к выводу. Инструмент переписывает текст оператора, а не парсит полный план выполнения, поэтому проверьте результат перед запуском против реальной базы данных, особенно для вложенных подзапросов или необычного форматирования. Многооператорные скрипты тоже работают: каждый оператор, разделённый точкой с запятой, преобразуется самостоятельно.
Всё работает локально в вашем браузере: ни один запрос, имя таблицы, имя столбца или строка подключения никогда никуда не отправляются. Скопируйте результат, загрузите его как файл .txt или отправьте вывод прямо обратно во входное поле для запуска другого прохода.