Ir para o conteúdo
Totalmente local

Conversor de dialeto SQL

Reescreva SQL entre sintaxe PostgreSQL, MySQL, SQLite e SQL Server.

Entrada
Saída

Conversor de dialeto SQL

Cole uma consulta escrita para um banco de dados e obtenha-a rescrita para outro. O conversor cobre sintaxe de limite de linhas, funções comuns de data e texto, concatenação de texto, aspas de identificadores e tipos de coluna em PostgreSQL, MySQL, SQLite e SQL Server — útil ao migrar um projeto de MySQL para PostgreSQL, portar um script escrito para SQL Server para SQLite, ou simplesmente verificar como uma consulta ficaria em outro mecanismo.

Dialeto de origem e dialeto de destino escolhem os dois extremos da conversão. As caixas de seleção abaixo ativam e desativam conversões individuais: normalizar aspas de identificadores troca aspas duplas, backticks e colchetes pelo próprio estilo do dialeto de destino; converter cláusula de limite alterna entre LIMIT, TOP e OFFSET…FETCH FIRST sem nunca descartar silenciosamente um offset; converter funções de data e texto reescreve NOW()/GETDATE()/datetime('now'), LENGTH()/LEN(), SUBSTRING()/SUBSTR() e COALESCE()/IFNULL()/ISNULL(); converter concatenação de texto alterna entre || e CONCAT()/+; converter tipos de coluna mapeia SERIAL, AUTO_INCREMENT, IDENTITY(1,1), BOOLEAN, TEXT e declarações tipo TIMESTAMP para seus equivalentes mais próximos. Manter comentários controla se comentários -- e /* */ sobrevivem à reescrita.

Algumas construções genuinamente não têm equivalentes — RETURNING e ON CONFLICT do PostgreSQL, ou ON DUPLICATE KEY UPDATE do MySQL — e em vez de adivinhar uma reescrita, a ferramenta as deixa no lugar e as lista num bloco de avisos anexado à saída. Ela reescreve texto de instrução em vez de analisar um plano de execução completo, portanto revise o resultado antes de executá-lo contra um banco de dados real, especialmente para subconsultas aninhadas ou formatação incomum. Scripts com múltiplas instruções funcionam também: cada instrução separada por ponto e vírgula converte por conta própria.

Tudo funciona localmente no seu navegador: nenhuma consulta, nome de tabela, nome de coluna ou string de conexão é jamais enviado para lugar algum. Copie o resultado, descarregue-o como arquivo .txt, ou envie a saída de volta para a entrada para executar outro passe.

FAQ

Realmente analisa o SQL, ou apenas faz substituição de texto?
Reescreve padrões conhecidos — cláusulas de limite de linhas, funções comuns, concatenação, aspas de identificadores e tipos de coluna — com substituições de texto direcionadas em vez de um analisador SQL completo, portanto sempre verifique o resultado antes de executar contra um banco de dados.
O que acontece com construções que não existem no dialeto de destino?
São deixadas no lugar e listadas num bloco de avisos anexado à saída, como ON CONFLICT do PostgreSQL ao converter para SQL Server.
Posso converter scripts com múltiplas instruções?
Sim — cada instrução, separada por ponto e vírgula, é processada individualmente, portanto um script com vários CREATE TABLE ou SELECT é convertido de uma vez.
Meu SQL é carregado em algum lugar?
Não. A conversão é executada inteiramente no seu navegador — suas consultas, esquema e dados nunca saem do seu dispositivo.